comparison pyntnclick/gamescreen.py @ 639:fdc63049b08c pyntnclick

Add game_description to the widgets,, since it looks a useful thing to do
author Neil Muller <neil@dip.sun.ac.za>
date Sun, 12 Feb 2012 01:31:14 +0200
parents c27087877c84
children e81df1abf3b5
comparison
equal deleted inserted replaced
638:d1ec9e739e23 639:fdc63049b08c
24 # TODO: Make this work again 24 # TODO: Make this work again
25 25
26 sel_color = Color("yellow") 26 sel_color = Color("yellow")
27 sel_width = 2 27 sel_width = 2
28 28
29 def __init__(self, screen): 29 def __init__(self, gd, screen):
30 Widget.__init__(self, Rect((0, 0) + screen.surface_size)) 30 Widget.__init__(self, Rect((0, 0) + screen.surface_size), gd)
31 self.screen = screen 31 self.screen = screen
32 self.game = screen.game 32 self.game = screen.game
33 self.state_widget = screen.state_widget 33 self.state_widget = screen.state_widget
34 34
35 def num_items(self): 35 def num_items(self):
62 self.game.set_tool(None) 62 self.game.set_tool(None)
63 63
64 64
65 class StateWidget(Widget): 65 class StateWidget(Widget):
66 66
67 def __init__(self, rect, screen): 67 def __init__(self, rect, gd, screen):
68 Widget.__init__(self, rect) 68 Widget.__init__(self, rect, gd)
69 self.screen = screen 69 self.screen = screen
70 self.game = screen.game 70 self.game = screen.game
71 self.detail = DetailWindow(rect, screen) 71 self.detail = DetailWindow(rect, gd, screen)
72 self.add_callback(MOUSEBUTTONDOWN, self.mouse_down) 72 self.add_callback(MOUSEBUTTONDOWN, self.mouse_down)
73 self.add_callback(MOUSEMOTION, self.mouse_move) 73 self.add_callback(MOUSEMOTION, self.mouse_move)
74 74
75 def draw(self, surface): 75 def draw(self, surface):
76 self.animate() 76 self.animate()
133 self.screen.running = False 133 self.screen.running = False
134 self.screen.shell.show_screen(self.screen.shell.end_screen) 134 self.screen.shell.show_screen(self.screen.shell.end_screen)
135 135
136 136
137 class DetailWindow(Container): 137 class DetailWindow(Container):
138 def __init__(self, rect, screen): 138 def __init__(self, rect, gd, screen):
139 Container.__init__(self, rect) 139 Container.__init__(self, rect, gd)
140 self.image_rect = None 140 self.image_rect = None
141 self.screen = screen 141 self.screen = screen
142 self.game = screen.game 142 self.game = screen.game
143 self.border_width = 5 143 self.border_width = 5
144 self.border_color = (0, 0, 0) 144 self.border_color = (0, 0, 0)
203 203
204 class GameScreen(Screen): 204 class GameScreen(Screen):
205 205
206 def setup(self): 206 def setup(self):
207 self.running = False 207 self.running = False
208 self.create_initial_state = self.game_description.initial_state 208 self.create_initial_state = self.gd.initial_state
209 209
210 def _clear_all(self): 210 def _clear_all(self):
211 for widget in self.container.children[:]: 211 for widget in self.container.children[:]:
212 self.container.remove(widget) 212 self.container.remove(widget)
213 213
215 if event_name == 'restart': 215 if event_name == 'restart':
216 self.start_game() 216 self.start_game()
217 217
218 def start_game(self): 218 def start_game(self):
219 self._clear_all() 219 self._clear_all()
220 toolbar_height = self.game_description.constants.button_size 220 toolbar_height = self.gd.constants.button_size
221 rect = Rect(0, 0, self.surface_size[0], 221 rect = Rect(0, 0, self.surface_size[0],
222 self.surface_size[1] - toolbar_height) 222 self.surface_size[1] - toolbar_height)
223 self.game = self.create_initial_state() 223 self.game = self.create_initial_state()
224 self.state_widget = StateWidget(rect, self) 224 self.state_widget = StateWidget(rect, self.gd, self)
225 self.container.add(self.state_widget) 225 self.container.add(self.state_widget)
226 226
227 # XXX: self.popup_menu = PopupMenu(self) 227 # XXX: self.popup_menu = PopupMenu(self)
228 # XXX: self.menubutton = PopupMenuButton('Menu', 228 # XXX: self.menubutton = PopupMenuButton('Menu',
229 # action=self.popup_menu.show_menu) 229 # action=self.popup_menu.show_menu)
230 230
231 # XXX: self.handbutton = HandButton(action=self.hand_pressed) 231 # XXX: self.handbutton = HandButton(action=self.hand_pressed)
232 232
233 self.inventory = InventoryView(self) 233 self.inventory = InventoryView(self.gd, self)
234 234
235 # XXX: self.toolbar = ToolBar([ 235 # XXX: self.toolbar = ToolBar([
236 # self.menubutton, 236 # self.menubutton,
237 # self.handbutton, 237 # self.handbutton,
238 # self.inventory, 238 # self.inventory,