Mercurial > boomslang
comparison pyntnclick/gamescreen.py @ 665:12149ea1c18e pyntnclick
Menu button.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sun, 12 Feb 2012 17:06:45 +0200 |
parents | 363b603794f5 |
children | c71530b8a19d |
comparison
equal
deleted
inserted
replaced
664:d1c1253fcd77 | 665:12149ea1c18e |
---|---|
240 super(ToolBar, self).__init__(rect, gd) | 240 super(ToolBar, self).__init__(rect, gd) |
241 | 241 |
242 self.bg_color = (31, 31, 31) | 242 self.bg_color = (31, 31, 31) |
243 self.left = self.rect.left | 243 self.left = self.rect.left |
244 | 244 |
245 # TODO: Menu button | 245 self.menu_button = self.add_tool( |
246 # XXX: self.popup_menu = PopupMenu(self) | 246 0, TextButton, gd, "Menu", fontname="VeraBd.ttf", color="red", |
247 # XXX: self.menubutton = PopupMenuButton('Menu', | 247 padding=2, border=0) |
248 # action=self.popup_menu.show_menu) | 248 self.menu_button.add_callback(MOUSEBUTTONDOWN, self.menu_callback) |
249 | 249 |
250 hand_image = gd.resource.get_image('items', 'hand.png') | 250 hand_image = gd.resource.get_image('items', 'hand.png') |
251 self.hand_button = self.add_tool( | 251 self.hand_button = self.add_tool( |
252 hand_image.get_width(), ImageButtonWidget, gd, hand_image) | 252 None, ImageButtonWidget, gd, hand_image) |
253 self.hand_button.add_callback(MOUSEBUTTONDOWN, self.hand_pressed) | 253 self.hand_button.add_callback(MOUSEBUTTONDOWN, self.hand_callback) |
254 | 254 |
255 self.inventory = self.add_tool( | 255 self.inventory = self.add_tool( |
256 self.rect.width - self.left, InventoryView, gd, screen) | 256 self.rect.width - self.left, InventoryView, gd, screen) |
257 | 257 |
258 def add_tool(self, width, cls, *args, **kw): | 258 def add_tool(self, width, cls, *args, **kw): |
259 rect = Rect((self.left, self.rect.top), (width, self.rect.height)) | 259 rect = (self.left, self.rect.top) |
260 if width is not None: | |
261 rect = Rect(rect, (width, self.rect.height)) | |
260 tool = cls(rect, *args, **kw) | 262 tool = cls(rect, *args, **kw) |
261 self.add(tool) | 263 self.add(tool) |
262 self.left += width | 264 self.left += tool.rect.width |
263 return tool | 265 return tool |
264 | 266 |
265 def draw(self, surface): | 267 def draw(self, surface): |
266 bg = Surface(self.rect.size) | 268 bg = Surface(self.rect.size) |
267 bg.fill(self.bg_color) | 269 bg.fill(self.bg_color) |
268 surface.blit(bg, self.rect) | 270 surface.blit(bg, self.rect) |
269 super(ToolBar, self).draw(surface) | 271 super(ToolBar, self).draw(surface) |
270 | 272 |
271 def hand_pressed(self, event, widget): | 273 def hand_callback(self, event, widget): |
272 self.inventory.unselect() | 274 self.inventory.unselect() |
275 | |
276 def menu_callback(self, event, widget): | |
277 self.screen.change_screen('menu') | |
273 | 278 |
274 | 279 |
275 class GameScreen(CursorScreen): | 280 class GameScreen(CursorScreen): |
276 | 281 |
277 def setup(self): | 282 def setup(self): |
311 | 316 |
312 def key_pressed(self, event, widget): | 317 def key_pressed(self, event, widget): |
313 if event.key == K_ESCAPE: | 318 if event.key == K_ESCAPE: |
314 self.change_screen('menu') | 319 self.change_screen('menu') |
315 | 320 |
316 # albow callback: | |
317 def main_menu_cmd(self): | |
318 self.shell.show_screen(self.shell.menu_screen) | |
319 | |
320 # albow callback: | |
321 def quit_cmd(self): | |
322 self.shell.quit() | |
323 | |
324 | 321 |
325 class DefEndScreen(Screen): | 322 class DefEndScreen(Screen): |
326 """A placeholder 'Game Over' screen so people can get started easily""" | 323 """A placeholder 'Game Over' screen so people can get started easily""" |
327 | 324 |
328 def setup(self): | 325 def setup(self): |