Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #
- # classes.rb
- #
- #
- # Created by Stuart Brand on 30/08/2006.
- # Copyright (c) 2001 Server-Solution.co.uk. All rights reserved.
- #
- class Load
- def self.image(name, colorkey=nil)
- image = Rubygame::Image.load(name)
- if colorkey != nil
- if colorkey == -1
- colorkey = image.get_at([0,0])
- end
- image.set_colorkey(colorkey)
- end
- return image
- end
- def self.sprite(name, colorkey=nil)
- image = Rubygame::Image.load(name)
- if colorkey != nil
- if colorkey == -1
- colorkey = image.get_at([0,0])
- end
- image.set_colorkey(colorkey)
- end
- @sprite_rect = Rubygame::Rect.new(0,0,*image.size)
- return image, @sprite_rect
- end
- def self.map(file)
- @@level.clear
- File.open("maps/#{file}") do |aFile|
- aFile.each_line do |line|
- line.each(',') { |s|
- if s == "\n" then
- next
- else
- @@level.push s.sub(/,/,'').sub(/ * /,'')
- end}
- end
- end
- Load.level
- puts "Map loaded"
- end
- def self.level
- x = y = 0
- num = 0
- @@level.each do |map_tile|
- if "#{map_tile}" == "A0"
- tile = A0
- elsif "#{map_tile}" == "A1"
- tile = A1
- elsif "#{map_tile}" == "A2"
- tile = A2
- elsif "#{map_tile}" == "A3"
- tile = A3
- elsif "#{map_tile}" == "A4"
- tile = A4
- elsif "#{map_tile}" == "A5"
- tile = A5
- elsif "#{map_tile}" == "A6"
- tile = A6
- elsif "#{map_tile}" == "A7"
- tile = A7
- elsif "#{map_tile}" == "A8"
- tile = A8
- elsif "#{map_tile}" == "A9"
- tile = A9
- elsif "#{map_tile}" == "A10"
- tile = A10
- elsif "#{map_tile}" == "A11"
- tile = A11
- elsif "#{map_tile}" == ""
- tile = BLANK
- end
- num += 1
- tile.blit(@@map, [x, y])
- x += 40
- if x > 7960
- x = 0
- y += 40
- end
- Loaded.sofar("10%") if num == 32000/10
- Loaded.sofar("20%") if num == 32000/10*2
- Loaded.sofar("30%") if num == 32000/10*3
- Loaded.sofar("40%") if num == 32000/10*4
- Loaded.sofar("50%") if num == 32000/10*5
- Loaded.sofar("60%") if num == 32000/10*6
- Loaded.sofar("70%") if num == 32000/10*7
- Loaded.sofar("80%") if num == 32000/10*8
- Loaded.sofar("90%") if num == 32000/10*9
- Loaded.sofar("100%") if num == 32000
- end
- end
- end
- class Mouse
- include Rubygame::Sprites::Sprite
- def initialize
- @rect = Rubygame::Rect.new(0,0,1,1)
- @mpos = [0,0]
- end
- def click(event)
- return @rect.collide_rect?(event)
- end
- def update
- @rect.midtop = @mpos
- end
- def tell(ev)
- case ev
- when Rubygame::MouseMotionEvent
- @mpos = ev.pos
- end
- end
- def pos
- return @mpos
- end
- end
- class Save
- def self.map(file, file_name)
- File.open("maps/#{file_name}", 'w+') do |level|
- file.each { |file|
- if file == A0
- file = "A0"
- elsif file == A1
- file = "A1"
- elsif file == A2
- file = "A2"
- elsif file == A3
- file = "A3"
- elsif file == A4
- file = "A4"
- elsif file == A5
- file = "A5"
- elsif file == A6
- file = "A6"
- elsif file == A7
- file = "A7"
- elsif file == A8
- file = "A8"
- elsif file == A9
- file = "A9"
- elsif file == A10
- file = "A10"
- elsif file == A11
- file = "A11"
- elsif file == A12
- file = "A12"
- end
- level << "#{file}, "
- }
- end
- puts "Map saved"
- end
- end
- class Loaded
- def self.sofar(name)
- clear = Rubygame::Surface.new([100,20], Rubygame::HWSURFACE)
- progress = @@font16.render("#{name} complete",false,[255,255,255])
- clear.blit(@@screen, [300,200])
- progress.blit(@@screen, [300,200])
- @@screen.flip()
- end
- end
- class Tile
- def self.next
- if @@current_tile == A0
- @@current_tile = A1
- elsif @@current_tile == A1
- @@current_tile = A2
- elsif @@current_tile == A2
- @@current_tile = A3
- elsif @@current_tile == A3
- @@current_tile = A4
- elsif @@current_tile == A4
- @@current_tile = A5
- elsif @@current_tile == A5
- @@current_tile = A6
- elsif @@current_tile == A6
- @@current_tile = A7
- elsif @@current_tile == A7
- @@current_tile = A8
- elsif @@current_tile == A8
- @@current_tile = A9
- elsif @@current_tile == A9
- @@current_tile = A10
- elsif @@current_tile == A10
- @@current_tile = A11
- elsif @@current_tile == A11
- @@current_tile = A0
- end
- end
- def self.previous
- if @@current_tile == A0
- @@current_tile = A11
- elsif @@current_tile == A1
- @@current_tile = A0
- elsif @@current_tile == A2
- @@current_tile = A1
- elsif @@current_tile == A3
- @@current_tile = A2
- elsif @@current_tile == A4
- @@current_tile = A3
- elsif @@current_tile == A5
- @@current_tile = A4
- elsif @@current_tile == A6
- @@current_tile = A5
- elsif @@current_tile == A7
- @@current_tile = A6
- elsif @@current_tile == A8
- @@current_tile = A7
- elsif @@current_tile == A9
- @@current_tile = A8
- elsif @@current_tile == A10
- @@current_tile = A9
- elsif @@current_tile == A11
- @@current_tile = A10
- end
- end
- end
Add Comment
Please, Sign In to add comment