class SpaceInvaders::InvaderRow
Constants
- X_POSITIONS
Attributes
direction[RW]
invader_clazz[R]
Public Class Methods
new(app, y_position, invader_clazz)
click to toggle source
Calls superclass method
SpaceInvaders::Base::new
# File lib/space_invaders/invaders/invader_row.rb, line 13 def initialize app, y_position, invader_clazz super(app) @y_position = y_position @direction = :right @invader_clazz = invader_clazz @invaders = [] X_POSITIONS.each do |x_position| @invaders << invader_clazz.new(app, x_position, y_position) end end
Public Instance Methods
check_collision(bullets)
click to toggle source
# File lib/space_invaders/invaders/invader_row.rb, line 42 def check_collision(bullets) @invaders.delete_if do |invader| if invader.collides_with? bullets app.score_tracker.increase_by(invader.points) app.sounds.play_invader_hit! end end end
draw()
click to toggle source
# File lib/space_invaders/invaders/invader_row.rb, line 30 def draw @invaders.each {|invader| invader.draw } end
farmost_left_position()
click to toggle source
# File lib/space_invaders/invaders/invader_row.rb, line 38 def farmost_left_position @invaders.min_by {|invader| invader.x_position }.x_position end
farmost_right_position()
click to toggle source
# File lib/space_invaders/invaders/invader_row.rb, line 34 def farmost_right_position @invaders.max_by {|invader| invader.x_position }.x_position end
update(direction, y_offset)
click to toggle source
# File lib/space_invaders/invaders/invader_row.rb, line 26 def update direction, y_offset @invaders.each {|invader| invader.update direction, y_offset } end