forked from jwaschkau/ragetracks
-
Notifications
You must be signed in to change notification settings - Fork 0
/
menu_old.py
104 lines (83 loc) · 3.34 KB
/
menu_old.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
###################################################################
# this module contains the menu class, which is used for the main-
# and sub menus
###################################################################
from direct.gui.OnscreenImage import OnscreenImage
# -----------------------------------------------------------------
# -----------------------------------------------------------------
# -----------------------------------------------------------------
class Menu(object):
'''
'''
def __init__(self):
'''
'''
self.selection = 0
self.options = []
self.imagesDB = { # {name:[[unselected, selected],pos,scale]}
"NewGame": [["data/sprites/menu/newGame.png", "data/sprites/menu/newGameSelected.png"], (0, 0, 0), (.6, 1, .06)]
}
self.selected = 0
# -----------------------------------------------------------------
def addOption(self, name, function):
'''
'''
image = OnscreenImage(self.imagesDB[name][0][0], self.imagesDB[name][1], self.imagesDB[name][2])
imageSelected = OnscreenImage(self.imagesDB[name][0][1], self.imagesDB[name][1], self.imagesDB[name][2])
self.options.append((name, function, image, imageSelected))
# -----------------------------------------------------------------
def hideMenu(self):
'''
'''
self.options.destroy()
pass
# -----------------------------------------------------------------
def selectNext(self):
'''
Kopie aus Hasenspiel
'''
old = self.selected
self.selected += 1
if self.selected == len(self.options):
self.selected = 0
if old < len(self.texts):
self.texts[old].setFg(self.color_deselected)
if self.selected < len(self.texts):
self.texts[self.selected].setFg(self.color_selected)
# -----------------------------------------------------------------
def selectPrev(self):
'''
Kopie aus Hasenspiel
'''
old = self.selected
self.selected -= 1
if self.selected == -1:
self.selected = len(self.options) - 1
if old < len(self.texts):
self.texts[old].setFg(self.color_deselected)
if self.selected < len(self.texts):
self.texts[self.selected].setFg(self.color_selected)
# -----------------------------------------------------------------
def chooseOption(self):
'''
'''
# call the function behind the selected option
self.options[self.selection][1]()
'''
Kopie aus Hasenspiel
'''
i %= len(self.options)
old = self.selected
self.selected = i
if self.selected == -1:
self.selected = len(self.options) - 1
if self.selected == len(self.options):
self.selected = 0
if old < len(self.texts):
self.texts[old].setFg(self.color_deselected)
if self.selected < len(self.texts):
self.texts[self.selected].setFg(self.color_selected)
# -----------------------------------------------------------------
# -----------------------------------------------------------------
# -----------------------------------------------------------------
# -----------------------------------------------------------------