Class: Asteroids::Menu
- Inherits:
-
Object
- Object
- Asteroids::Menu
- Defined in:
- lib/asteroids/menu/menu.rb
Instance Method Summary collapse
- #add_item(image, callback, selected) ⇒ Object
- #confirm ⇒ Object
- #draw ⇒ Object
-
#initialize ⇒ Menu
constructor
A new instance of Menu.
- #position ⇒ Object
- #select_item(which) ⇒ Object
Constructor Details
#initialize ⇒ Menu
Returns a new instance of Menu.
3 4 5 |
# File 'lib/asteroids/menu/menu.rb', line 3 def initialize () @items = [] end |
Instance Method Details
#add_item(image, callback, selected) ⇒ Object
7 8 9 10 11 12 |
# File 'lib/asteroids/menu/menu.rb', line 7 def add_item (image, callback, selected) item = MenuItem.new(image, callback, selected) @items << item item.x = position[:x] item.y = position[:y] end |
#confirm ⇒ Object
37 38 39 40 41 42 43 |
# File 'lib/asteroids/menu/menu.rb', line 37 def confirm @items.each do |item| if item.is_selected? item.execute end end end |
#draw ⇒ Object
14 15 16 17 18 |
# File 'lib/asteroids/menu/menu.rb', line 14 def draw @items.each do |i| i.draw end end |
#position ⇒ Object
20 21 22 23 24 |
# File 'lib/asteroids/menu/menu.rb', line 20 def position {x: $window.width / 2 - @items[@items.count - 1].width / 2, y: $window.height / 3 - @items[@items.count - 1].height / 3 + @items.count * 60 } end |
#select_item(which) ⇒ Object
26 27 28 29 30 31 32 33 34 35 |
# File 'lib/asteroids/menu/menu.rb', line 26 def select_item(which) @items.each_with_index do |item, index| if item.is_selected? if @items[index.send(which, 1) % 3].select item.deselect return true end end end end |