class Asteroids::ExplosionGraphics

Constants

FRAME_DELAY

Public Class Methods

new(game_object) click to toggle source
Calls superclass method Asteroids::Component::new
# File lib/asteroids/explosion/explosion_graphics.rb, line 6
def initialize(game_object)
  super
  @current_frame = 0
end

Public Instance Methods

draw() click to toggle source
# File lib/asteroids/explosion/explosion_graphics.rb, line 12
def draw()
  image = current_frame
image.draw(
  object.x - image.width / 2.0,
  object.y - image.height / 2.0,
  100)
end
update() click to toggle source
# File lib/asteroids/explosion/explosion_graphics.rb, line 20
def update
  now = Gosu.milliseconds
  delta = now - (@last_frame ||= now)
  if delta > FRAME_DELAY
    @last_frame = now
  end
  @current_frame += (delta / FRAME_DELAY).floor
  object.mark_for_removal if done?
end

Private Instance Methods

animation() click to toggle source
# File lib/asteroids/explosion/explosion_graphics.rb, line 40
def animation
  @@animation ||=
  Gosu::Image.load_tiles(
  $window, Utils.get_image_path("explosion.png"),
  128, 128, false)
end
current_frame() click to toggle source
# File lib/asteroids/explosion/explosion_graphics.rb, line 32
def current_frame
  animation[@current_frame % animation.size]
end
done?() click to toggle source
# File lib/asteroids/explosion/explosion_graphics.rb, line 36
def done?
  @done ||= @current_frame >= animation.size
end