Sha256: 35ba8aba49fccf44a9a0dc5d9624aed3988414f5a2b43e39da6fe36b4744200f

Contents?: true

Size: 630 Bytes

Versions: 3

Compression:

Stored size: 630 Bytes

Contents

# Holds the moveables that are moved and drawn.
#
class Moveables
  
  delegate :each, :to => :@elements
  
  def initialize elements = []
    @elements = elements
  end
  
  def register moveable
    @elements << moveable
  end
  def registered? moveable
    @elements.include? moveable
  end
  def remove shape
    @elements.delete_if { |element| element.shape == shape }
  end
  
  def draw
    @elements.each &:draw
  end
  def move
    @elements.each &:move
  end
  def targeting
    @elements.select { |m| m.respond_to? :target }.each do |gun|
      gun.target *@elements.select { |m| m.kind_of? Enemy }
    end
  end
  
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gosu_extensions-0.2.9 lib/core/moveables.rb
gosu_extensions-0.2.8 lib/core/moveables.rb
gosu_extensions-0.2.7 lib/core/moveables.rb