class Map
class Map
Attributes
eagle[R]
Public Class Methods
new(two_players = false, level = 1)
click to toggle source
# File lib/misc/map.rb, line 6 def initialize(two_players = false, level = 1) @level = Level.new(level) @env_objects = @level.env_objects @explosions = [] @bullets = [] @upgrades = [] @enemies = [Enemy.new(0, 0, self), Enemy.new(7 * 16, 0, self), Enemy.new(15 * 16, 0, self)] @pl1 = Player.new(@level.spawn1[0], @level.spawn1[1], self) @pl2 = two_players ? Player.new(@level.spawn2[0], @level.spawn2[1], self, true) : nil @eagle = Eagle.new(@level.eagle[0], @level.eagle[1]) @timer = 0 end
Public Instance Methods
add_bullet(bullet)
click to toggle source
# File lib/misc/map.rb, line 60 def add_bullet(bullet) return if bullet.nil? add_object(bullet, @bullets) end
add_enemy()
click to toggle source
# File lib/misc/map.rb, line 55 def add_enemy spawn = @level.enemy_spawn add_object(Enemy.new(spawn[0],spawn[1], self, rand(5) + 1), @enemies) end
add_explosion(x, y)
click to toggle source
# File lib/misc/map.rb, line 51 def add_explosion(x, y) add_object(Explosion.new(x, y), @explosions) end
add_object(o, list)
click to toggle source
# File lib/misc/map.rb, line 46 def add_object(o, list) return if list.include?(o) || o.nil? list.push(o) end
draw()
click to toggle source
# File lib/misc/map.rb, line 31 def draw objects.map(&:draw) end
game_over?()
click to toggle source
# File lib/misc/map.rb, line 73 def game_over? over = @eagle.dead? over |= @pl1.done? if @pl2.nil? over |= @pl1.done? && @pl2.done? if @pl2 over end
objects()
click to toggle source
# File lib/misc/map.rb, line 19 def objects obj = @env_objects obj += [@pl1] unless @pl1.done? obj += [@pl2] if @pl2 && !@pl2.done? obj += [@eagle] obj += @upgrades obj += @explosions obj += @bullets obj += @enemies obj end
reject_objects()
click to toggle source
# File lib/misc/map.rb, line 65 def reject_objects @explosions.reject!(&:done?) @bullets.reject!(&:done?) @env_objects.reject!(&:done?) @enemies.reject!(&:done?) @upgrades.reject!(&:done?) end
update(keymap)
click to toggle source
# File lib/misc/map.rb, line 35 def update(keymap) add_object(@pl1.input(keymap), @bullets) unless @pl1.done? add_object(@pl2.input(keymap), @bullets) if @pl2 && !@pl2.done? @enemies.map(&:ai) if @timer == 0 objects.map(&:update) reject_objects objects.map { |x| add_object(x.collision_detect(objects), @explosions) } @timer -= 1 if @timer > 0 add_enemy if @enemies.length < 3 end
upgrade_create()
click to toggle source
# File lib/misc/map.rb, line 80 def upgrade_create @upgrades.push(Upgrade.new(rand(240), rand(208), [:powerup_timer, :powerup_star, :powerup_granade][rand(3)])) end
upgrade_granade()
click to toggle source
# File lib/misc/map.rb, line 88 def upgrade_granade @enemies.each { |e| e.hitted(nil) } end
upgrade_timer()
click to toggle source
# File lib/misc/map.rb, line 84 def upgrade_timer @timer = 600 end
upgrades_size()
click to toggle source
# File lib/misc/map.rb, line 92 def upgrades_size @upgrades.length end