class SK::GameObjectManager
Attributes
physics[RW]
Public Class Methods
new()
click to toggle source
# File lib/shirokuro/ecs/game_object_manager.rb, line 6 def initialize @id_generator = IdGenerator.new @game_objects = [] @started = false @physics = Physics.new end
Public Instance Methods
create(name)
click to toggle source
# File lib/shirokuro/ecs/game_object_manager.rb, line 14 def create name id = @id_generator.next() game_object = GameObject.new(name, id) game_object.instance_variable_set(:@manager, self) @game_objects << game_object if @started game_object.start end game_object end
draw(context)
click to toggle source
# File lib/shirokuro/ecs/game_object_manager.rb, line 39 def draw context components = @game_objects.collect{|obj| obj.components } .flatten.collect{|c| c } .sort_by{ |c| [c.layer, c.order_in_layer] } components.each do |component| component.draw context end end
remove(game_object)
click to toggle source
# File lib/shirokuro/ecs/game_object_manager.rb, line 25 def remove game_object @game_objects.delete game_object end
start()
click to toggle source
# File lib/shirokuro/ecs/game_object_manager.rb, line 29 def start @game_objects.each{ |x| x.start } @started = true end
update(dt)
click to toggle source
# File lib/shirokuro/ecs/game_object_manager.rb, line 34 def update dt @physics.update dt @game_objects.each{ |x| x.update dt} end