Sha256: f7c9ea2c371a59ab249f103d057cc41d820fb85f0c58db77a8e3b5f2763d3a1d

Contents?: true

Size: 709 Bytes

Versions: 9

Compression:

Stored size: 709 Bytes

Contents

# Holds the things that can collide, are moved and drawn.
#
class Things < Sprites
  
  delegate :each, :to => :@elements
  
  def initialize environment, elements = []
    @environment = environment
    super elements
  end
  
  def register element
    element.add_to @environment
    super element
  end
  
  def targeting # TODO
    @elements.select { |m| m.respond_to? :target }.each do |gun|
      gun.target *@elements.select { |m| m.kind_of? Enemy }
    end
  end
  
  #
  #
  def remove_marked
    @to_remove.each do |thing|
      @environment.remove thing
      @elements.delete thing # TODO Should the environment be the owner of the things? Probably, yes.
    end
    @to_remove.clear
  end
  
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
gosu_extensions-0.3.8 lib/core/things.rb
gosu_extensions-0.3.7 lib/core/things.rb
gosu_extensions-0.3.6 lib/core/things.rb
gosu_extensions-0.3.5 lib/core/things.rb
gosu_extensions-0.3.4 lib/core/things.rb
gosu_extensions-0.3.3 lib/core/things.rb
gosu_extensions-0.3.2 lib/core/things.rb
gosu_extensions-0.3.1 lib/core/things.rb
gosu_extensions-0.3.0 lib/core/things.rb