Class: Chingu::GameObject
- Inherits:
-
BasicGameObject
- Object
- BasicGameObject
- Chingu::GameObject
- Includes:
- Helpers::InputClient, Helpers::RotationCenter
- Defined in:
- lib/chingu/game_object.rb
Overview
GameObject is our BasisGameObject (class with framespecific stuff)
On top of that, it encapsulates GOSUs Image#draw_rot and all its parameters.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#angle ⇒ Object
Returns the value of attribute angle.
-
#center ⇒ Object
Returns the value of attribute center.
-
#center_x ⇒ Object
Returns the value of attribute center_x.
-
#center_y ⇒ Object
Returns the value of attribute center_y.
-
#color ⇒ Object
Returns the value of attribute color.
-
#factor ⇒ Object
Returns the value of attribute factor.
-
#factor_x ⇒ Object
Returns the value of attribute factor_x.
-
#factor_y ⇒ Object
Returns the value of attribute factor_y.
-
#image ⇒ Object
Returns the value of attribute image.
-
#mode ⇒ Object
Returns the value of attribute mode.
-
#x ⇒ Object
Returns the value of attribute x.
-
#y ⇒ Object
Returns the value of attribute y.
-
#zorder ⇒ Object
Returns the value of attribute zorder.
Attributes inherited from BasicGameObject
#options, #parent, #paused, #visible
Instance Method Summary collapse
-
#distance_to(object) ⇒ Object
Calculates the distance from self to a given objevt.
- #draw ⇒ Object
-
#initialize(options = {}) ⇒ GameObject
constructor
A new instance of GameObject.
-
#inside_window?(x = @x, y = @y) ⇒ Boolean
Returns true if object is inside the game window, false if outside.
-
#outside_window?(x = @x, y = @y) ⇒ Boolean
Returns true object is outside the game window.
Methods included from Helpers::RotationCenter
Methods included from Helpers::InputClient
Methods inherited from BasicGameObject
all, create, #destroy, destroy_all, destroy_if, #draw_trait, has_trait, has_traits, #hide!, #pause!, #setup_trait, #show!, size, #unpause!, #update, #update_trait
Constructor Details
#initialize(options = {}) ⇒ GameObject
Returns a new instance of GameObject.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/chingu/game_object.rb', line 36 def initialize( = {}) super # All encapsulated draw_rot arguments can be set with hash-options at creation time if [:image].is_a?(Gosu::Image) @image = [:image] elsif [:image].is_a? String @image = Image[[:image]] end @x = [:x] || 0 @y = [:y] || 0 @angle = [:angle] || 0 self.center = [:center] || 0.5 self.factor = [:factor] || 1.0 @center_x = [:center_x] if [:center_x] @center_y = [:center_y] if [:center_y] @factor_x = [:factor_x] if [:factor_x] @factor_y = [:factor_y] if [:factor_y] if [:color].is_a?(Gosu::Color) @color = [:color] else @color = Gosu::Color.new([:color] || 0xFFFFFFFF) end @mode = [:mode] || :default # :additive is also available. @zorder = [:zorder] || 100 setup_trait() if respond_to?(:setup_trait) end |
Instance Attribute Details
#angle ⇒ Object
Returns the value of attribute angle.
30 31 32 |
# File 'lib/chingu/game_object.rb', line 30 def angle @angle end |
#center ⇒ Object
Returns the value of attribute center.
31 32 33 |
# File 'lib/chingu/game_object.rb', line 31 def center @center end |
#center_x ⇒ Object
Returns the value of attribute center_x.
30 31 32 |
# File 'lib/chingu/game_object.rb', line 30 def center_x @center_x end |
#center_y ⇒ Object
Returns the value of attribute center_y.
30 31 32 |
# File 'lib/chingu/game_object.rb', line 30 def center_y @center_y end |
#color ⇒ Object
Returns the value of attribute color.
30 31 32 |
# File 'lib/chingu/game_object.rb', line 30 def color @color end |
#factor ⇒ Object
Returns the value of attribute factor.
31 32 33 |
# File 'lib/chingu/game_object.rb', line 31 def factor @factor end |
#factor_x ⇒ Object
Returns the value of attribute factor_x.
30 31 32 |
# File 'lib/chingu/game_object.rb', line 30 def factor_x @factor_x end |
#factor_y ⇒ Object
Returns the value of attribute factor_y.
30 31 32 |
# File 'lib/chingu/game_object.rb', line 30 def factor_y @factor_y end |
#image ⇒ Object
Returns the value of attribute image.
30 31 32 |
# File 'lib/chingu/game_object.rb', line 30 def image @image end |
#mode ⇒ Object
Returns the value of attribute mode.
30 31 32 |
# File 'lib/chingu/game_object.rb', line 30 def mode @mode end |
#x ⇒ Object
Returns the value of attribute x.
30 31 32 |
# File 'lib/chingu/game_object.rb', line 30 def x @x end |
#y ⇒ Object
Returns the value of attribute y.
30 31 32 |
# File 'lib/chingu/game_object.rb', line 30 def y @y end |
#zorder ⇒ Object
Returns the value of attribute zorder.
30 31 32 |
# File 'lib/chingu/game_object.rb', line 30 def zorder @zorder end |
Instance Method Details
#distance_to(object) ⇒ Object
Calculates the distance from self to a given objevt
92 93 94 |
# File 'lib/chingu/game_object.rb', line 92 def distance_to(object) distance(self.x, self.y, object.x, object.y) end |
#draw ⇒ Object
96 97 98 |
# File 'lib/chingu/game_object.rb', line 96 def draw @image.draw_rot(@x, @y, @zorder, @angle, @center_x, @center_y, @factor_x, @factor_y, @color, @mode) if @visible end |
#inside_window?(x = @x, y = @y) ⇒ Boolean
Returns true if object is inside the game window, false if outside
82 83 84 |
# File 'lib/chingu/game_object.rb', line 82 def inside_window?(x = @x, y = @y) x >= 0 && x <= $window.width && y >= 0 && y <= $window.height end |
#outside_window?(x = @x, y = @y) ⇒ Boolean
Returns true object is outside the game window
87 88 89 |
# File 'lib/chingu/game_object.rb', line 87 def outside_window?(x = @x, y = @y) not inside_window?(x,y) end |