Class: LampWithGenie
- Inherits:
-
Object
- Object
- LampWithGenie
- Defined in:
- lib/lamp_with_genie.rb
Defined Under Namespace
Instance Attribute Summary collapse
-
#genie ⇒ Object
readonly
Returns the value of attribute genie.
-
#lamp ⇒ Object
readonly
Returns the value of attribute lamp.
Instance Method Summary collapse
- #draw ⇒ Object
-
#initialize(window) ⇒ LampWithGenie
constructor
A new instance of LampWithGenie.
- #off_screen? ⇒ Boolean
- #scroll(speed) ⇒ Object
Constructor Details
#initialize(window) ⇒ LampWithGenie
Returns a new instance of LampWithGenie.
92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/lamp_with_genie.rb', line 92 def initialize(window) flipped = rand(2) == 0 @lamp = Lamp.new(window, flipped) @genie = Genie.new(window, flipped, @lamp) x = if flipped rand(0..(window.width - @genie.width - @lamp.width)) else rand(@genie.width..(window.width - @lamp.width)) end @lamp.x = x @genie.x = flipped ? x + @lamp.width : x @window = window end |
Instance Attribute Details
#genie ⇒ Object (readonly)
Returns the value of attribute genie.
4 5 6 |
# File 'lib/lamp_with_genie.rb', line 4 def genie @genie end |
#lamp ⇒ Object (readonly)
Returns the value of attribute lamp.
4 5 6 |
# File 'lib/lamp_with_genie.rb', line 4 def lamp @lamp end |
Instance Method Details
#draw ⇒ Object
111 112 113 114 |
# File 'lib/lamp_with_genie.rb', line 111 def draw @lamp.draw @genie.update && @genie.draw if @lamp.rubbed? end |
#off_screen? ⇒ Boolean
116 117 118 119 120 121 122 |
# File 'lib/lamp_with_genie.rb', line 116 def off_screen? if @lamp.rubbed? @genie.y > @window.height else @lamp.y > @window.height end end |
#scroll(speed) ⇒ Object
106 107 108 109 |
# File 'lib/lamp_with_genie.rb', line 106 def scroll(speed) @lamp.y += speed @genie.y += speed end |