Class: Chingu::GameObjectList

Inherits:
Object
  • Object
show all
Defined in:
lib/chingu/game_object_list.rb

Overview

Manages a list of game objects An instance of GameObjectList is automaticly created as “game_objects” if using Chingu::Window

Instance Method Summary collapse

Constructor Details

#initializeGameObjectList

Returns a new instance of GameObjectList.



30
31
32
33
# File 'lib/chingu/game_object_list.rb', line 30

def initialize
  @game_objects = Array.new
  #@game_objects_by_class = Hash.new
end

Instance Method Details

#add_game_object(object) ⇒ Object



50
51
52
53
# File 'lib/chingu/game_object_list.rb', line 50

def add_game_object(object)
  @game_objects.push(object)
  #(@game_objects_by_class[object.class] ||= []).push(object)
end

#destroy_ifObject



60
61
62
63
# File 'lib/chingu/game_object_list.rb', line 60

def destroy_if
  @game_objects.reject! { |object| yield(object) }
  #@game_objects_by_class.delete_if { |klass, object| yield(object) }
end

#drawObject



69
70
71
72
# File 'lib/chingu/game_object_list.rb', line 69

def draw
  @game_objects.each { |object| object.draw_trait }
  @game_objects.each { |object| object.draw }
end

#eachObject



79
80
81
# File 'lib/chingu/game_object_list.rb', line 79

def each
  @game_objects.each { |object| yield object }
end

#of_class(klass) ⇒ Object



39
40
41
42
# File 'lib/chingu/game_object_list.rb', line 39

def of_class(klass)
  @game_objects.select { |game_object| game_object.is_a? klass }
  #@game_objects_by_class[klass] || []
end

#remove_allObject Also known as: clear



44
45
46
47
# File 'lib/chingu/game_object_list.rb', line 44

def remove_all
  @game_objects.clear
  #@game_objects_of_class.clear
end

#remove_game_object(object) ⇒ Object



55
56
57
58
# File 'lib/chingu/game_object_list.rb', line 55

def remove_game_object(object)
  @game_objects.delete(object)
  #@game_objects_by_class[object.class].delete(object)
end

#sizeObject



65
66
67
# File 'lib/chingu/game_object_list.rb', line 65

def size
  @game_objects.size
end

#to_sObject



35
36
37
# File 'lib/chingu/game_object_list.rb', line 35

def to_s
  "#{@game_objects.size} game objects."
end

#updateObject



74
75
76
77
# File 'lib/chingu/game_object_list.rb', line 74

def update
  @game_objects.each { |object| object.update_trait }
  @game_objects.each { |object| object.update }
end