Mercurial > boomslang
comparison gamelib/gamescreen.py @ 36:31a431f795e1
Add a hand button placeholder
author | Neil Muller <neil@dip.sun.ac.za> |
---|---|
date | Sun, 22 Aug 2010 20:25:13 +0200 |
parents | ebc76bc0c067 |
children | 9fdbfbc02a60 |
comparison
equal
deleted
inserted
replaced
35:ebc76bc0c067 | 36:31a431f795e1 |
---|---|
1 # menu.py | 1 # menu.py |
2 # Copyright Boomslang team, 2010 (see COPYING File) | 2 # Copyright Boomslang team, 2010 (see COPYING File) |
3 # Main menu for the game | 3 # Main menu for the game |
4 | 4 |
5 from state import initial_state, Item | 5 from state import initial_state, Item |
6 from hand import HandButton | |
6 | 7 |
7 from pygame.color import Color | 8 from pygame.color import Color |
8 from pygame import Rect | 9 from pygame import Rect |
9 from pygame.locals import BLEND_ADD | 10 from pygame.locals import BLEND_ADD |
10 from albow.screen import Screen | 11 from albow.screen import Screen |
16 class InventoryView(PaletteView): | 17 class InventoryView(PaletteView): |
17 | 18 |
18 sel_color = Color("white") | 19 sel_color = Color("white") |
19 sel_width = 2 | 20 sel_width = 2 |
20 | 21 |
21 def __init__(self, state): | 22 def __init__(self, state, handbutton): |
22 PaletteView.__init__(self, (50, 50), 1, 6, scrolling=True) | 23 PaletteView.__init__(self, (50, 50), 1, 6, scrolling=True) |
23 self.state = state | 24 self.state = state |
24 self.selection = None | 25 self.selection = None |
26 self.handbutton = handbutton | |
25 | 27 |
26 def num_items(self): | 28 def num_items(self): |
27 return len(self.state.inventory) | 29 return len(self.state.inventory) |
28 | 30 |
29 def draw_item(self, surface, item_no, rect): | 31 def draw_item(self, surface, item_no, rect): |
31 r = rect.inflate(d, d) | 33 r = rect.inflate(d, d) |
32 surface.blit(self.state.inventory[item_no].get_inventory_image(), r, None, BLEND_ADD) | 34 surface.blit(self.state.inventory[item_no].get_inventory_image(), r, None, BLEND_ADD) |
33 | 35 |
34 def click_item(self, item_no, event): | 36 def click_item(self, item_no, event): |
35 self.selection = item_no | 37 self.selection = item_no |
38 self.handbutton.unselect() | |
36 | 39 |
37 def item_is_selected(self, item_no): | 40 def item_is_selected(self, item_no): |
38 return self.selection == item_no | 41 return self.selection == item_no |
39 | 42 |
40 def add_item(self, item): | 43 def unselect(self): |
41 self.info.append(item) | 44 self.selection = None |
42 | |
43 def remove_item(self, item): | |
44 self.info.remove(item) | |
45 | |
46 | 45 |
47 class StateWidget(Widget): | 46 class StateWidget(Widget): |
48 | 47 |
49 def __init__(self, state): | 48 def __init__(self, state): |
50 Widget.__init__(self, Rect(0, 0, 800, 550)) | 49 Widget.__init__(self, Rect(0, 0, 800, 550)) |
72 StartButton, | 71 StartButton, |
73 QuitButton, | 72 QuitButton, |
74 AddItemButton, | 73 AddItemButton, |
75 ], align='l', spacing=20) | 74 ], align='l', spacing=20) |
76 self.add_centered(menu) | 75 self.add_centered(menu) |
76 self.menubutton = Button('M', action=self.main_menu) | |
77 self.menubutton.bottomleft = self.bottomleft | |
78 self.add(self.menubutton) | |
79 self.handbutton = HandButton(action=self.hand_pressed) | |
80 self.handbutton.bottomleft = self.bottomleft | |
81 self.handbutton.get_rect().move_ip(50, 0) | |
82 self.add(self.handbutton) | |
83 self.inventory = InventoryView(self.state, self.handbutton) | |
77 | 84 |
78 self.inventory = InventoryView(self.state) | |
79 self.inventory.bottomleft = self.bottomleft | 85 self.inventory.bottomleft = self.bottomleft |
86 self.inventory.get_rect().move_ip(100, 0) | |
80 self.add(self.inventory) | 87 self.add(self.inventory) |
81 | 88 |
82 # Test items | 89 # Test items |
83 self.state.add_inventory_item('triangle') | 90 self.state.add_inventory_item('triangle') |
84 self.state.add_inventory_item('square') | 91 self.state.add_inventory_item('square') |
86 def main_menu(self): | 93 def main_menu(self): |
87 print 'Returning to menu' | 94 print 'Returning to menu' |
88 self.shell.show_screen(self.shell.menu_screen) | 95 self.shell.show_screen(self.shell.menu_screen) |
89 | 96 |
90 def add_item(self): | 97 def add_item(self): |
91 self.inventory.add_item("white") | 98 self.state.add_inventory_item("triangle") |
99 | |
100 def hand_pressed(self): | |
101 self.handbutton.toggle_selected() | |
102 self.inventory.unselect() | |
103 |