Mercurial > boomslang
comparison gamelib/gamescreen.py @ 120:48d24a48d0ce
Enter and leave hooks
author | Neil Muller <neil@dip.sun.ac.za> |
---|---|
date | Tue, 24 Aug 2010 17:24:54 +0200 |
parents | d5f7cccfdb6c |
children | 2f672e98d488 |
comparison
equal
deleted
inserted
replaced
119:d5f7cccfdb6c | 120:48d24a48d0ce |
---|---|
73 self.detail = DetailWindow(state) | 73 self.detail = DetailWindow(state) |
74 | 74 |
75 def draw(self, surface): | 75 def draw(self, surface): |
76 self.state.draw(surface) | 76 self.state.draw(surface) |
77 | 77 |
78 def _process_result(self, result): | |
79 """Helper function to do the right thing with a result object""" | |
80 if result: | |
81 if result.sound: | |
82 result.sound.play() | |
83 if result.message: | |
84 # Display the message as a modal dialog | |
85 MessageDialog(result.message, 60).present() | |
86 # queue a redraw to show updated state | |
87 self.invalidate() | |
88 | |
78 def mouse_down(self, event): | 89 def mouse_down(self, event): |
79 if self.subwidgets: | 90 if self.subwidgets: |
80 self.remove(self.detail) | 91 self.remove(self.detail) |
81 self.state.set_current_detail(None) | 92 self.state.set_current_detail(None) |
82 else: | 93 else: |
83 result = self.state.interact(event.pos) | 94 result = self.state.interact(event.pos) |
84 if result: | 95 self._process_result(result) |
85 if result.sound: | |
86 result.sound.play() | |
87 if result.message: | |
88 # Display the message as a modal dialog | |
89 MessageDialog(result.message, 60).present() | |
90 # queue a redraw to show updated state | |
91 self.invalidate() | |
92 | 96 |
93 def animate(self): | 97 def animate(self): |
94 if self.state.animate(): | 98 if self.state.animate(): |
95 # queue a redraw | 99 # queue a redraw |
96 self.invalidate() | 100 self.invalidate() |
101 # We do this here so we can get enter and leave events regardless | |
102 # of what happens | |
103 result = self.state.check_enter_leave() | |
104 self._process_result(result) | |
97 | 105 |
98 def mouse_move(self, event): | 106 def mouse_move(self, event): |
99 if not self.subwidgets: | 107 if not self.subwidgets: |
100 self.state.mouse_move(event.pos) | 108 self.state.mouse_move(event.pos) |
101 | 109 |