Class: LampWithGenie::Genie
- Inherits:
-
Object
- Object
- LampWithGenie::Genie
- Includes:
- Positionable
- Defined in:
- lib/lamp_with_genie.rb
Constant Summary collapse
- PADDING =
15
Instance Attribute Summary collapse
-
#image ⇒ Object
readonly
Returns the value of attribute image.
Attributes included from Positionable
Instance Method Summary collapse
- #capture! ⇒ Object
- #captured? ⇒ Boolean
- #draw ⇒ Object
- #evil? ⇒ Boolean
- #good? ⇒ Boolean
-
#initialize(window, flipped, lamp) ⇒ Genie
constructor
A new instance of Genie.
- #update ⇒ Object
Methods included from Positionable
Constructor Details
#initialize(window, flipped, lamp) ⇒ Genie
Returns a new instance of Genie.
41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/lamp_with_genie.rb', line 41 def initialize(window, flipped, lamp) prefix = good? ? 'good' : 'evil' suffix = '_flipped' if flipped @image = Gosu::Image.new(window, "media/#{prefix}_genie#{suffix}.png") @sound = Gosu::Sample.new(window, "media/#{prefix}_genie.m4a") @lamp = lamp @y = -@image.height @flipped = flipped @captured = false @scale = 0.0 end |
Instance Attribute Details
#image ⇒ Object (readonly)
Returns the value of attribute image.
39 40 41 |
# File 'lib/lamp_with_genie.rb', line 39 def image @image end |
Instance Method Details
#capture! ⇒ Object
68 69 70 71 72 |
# File 'lib/lamp_with_genie.rb', line 68 def capture! return @captured if @captured @captured = true @sound.play end |
#captured? ⇒ Boolean
74 75 76 |
# File 'lib/lamp_with_genie.rb', line 74 def captured? @captured end |
#draw ⇒ Object
53 54 55 |
# File 'lib/lamp_with_genie.rb', line 53 def draw @image.draw(@x, @y, 3, @scale, @scale) end |
#evil? ⇒ Boolean
86 87 88 |
# File 'lib/lamp_with_genie.rb', line 86 def evil? !good? end |
#good? ⇒ Boolean
78 79 80 81 82 83 84 |
# File 'lib/lamp_with_genie.rb', line 78 def good? if defined? @good return @good else @good = rand(2) == 0 end end |