Sha256: bcbe148fb850518e5aaa7f1254d2768f6aef3c615a26cca1c9a3c0a2a72c3a7a

Contents?: true

Size: 578 Bytes

Versions: 5

Compression:

Stored size: 578 Bytes

Contents

# TODO optimize
#
class Moveables
  
  def initialize
    @elements = []
  end
  
  delegate :each, :to => :@elements
  
  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

5 entries across 5 versions & 1 rubygems

Version Path
gosu_extensions-0.1.22 lib/core/moveables.rb
gosu_extensions-0.1.21 lib/core/moveables.rb
gosu_extensions-0.1.20 lib/core/moveables.rb
gosu_extensions-0.1.19 lib/core/moveables.rb
gosu_extensions-0.1.18 lib/core/moveables.rb