Class: Asteroids::Menu

Inherits:
Object
  • Object
show all
Defined in:
lib/asteroids/menu/menu.rb

Instance Method Summary collapse

Constructor Details

#initializeMenu

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

#confirmObject



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

#drawObject



14
15
16
17
18
# File 'lib/asteroids/menu/menu.rb', line 14

def draw
  @items.each do |i|
      i.draw
  end
end

#positionObject



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