Mercurial > boomslang
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, |