class PowerupRespawnQueue

Constants

RESPAWN_DELAY

Public Class Methods

new() click to toggle source
# File lib/entities/powerups/powerup_respawn_queue.rb, line 3
def initialize
  @respawn_queue = {}
  @last_respawn = Gosu.milliseconds
end

Public Instance Methods

enqueue(delay_seconds, type, x, y) click to toggle source
# File lib/entities/powerups/powerup_respawn_queue.rb, line 8
def enqueue(delay_seconds, type, x, y)
  respawn_at = Gosu.milliseconds + delay_seconds * 1000
  @respawn_queue[respawn_at.to_i] = [type, x, y]
end
respawn(object_pool) click to toggle source
# File lib/entities/powerups/powerup_respawn_queue.rb, line 13
def respawn(object_pool)
  now = Gosu.milliseconds
  return if now - @last_respawn < RESPAWN_DELAY
  @respawn_queue.keys.each do |k|
    next if k > now # not yet
    type, x, y = @respawn_queue.delete(k)
    type.new(object_pool, x, y)
  end
  @last_respawn = now
end