Mercurial > mamba
changeset 286:71bc946ce1f1
Check if paused to avoid displaing two MessageBoxes on the screen if we manage to stack up SnakeDied events
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Thu, 15 Sep 2011 23:07:18 +0200 |
parents | cacc03748580 |
children | d57b7f668028 |
files | mamba/widgets/game.py mamba/world.py |
diffstat | 2 files changed, 9 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mamba/widgets/game.py Thu Sep 15 23:02:47 2011 +0200 +++ b/mamba/widgets/game.py Thu Sep 15 23:07:18 2011 +0200 @@ -46,10 +46,12 @@ self.world.draw(surface) def snake_died(self, ev, widget): - self.world.pause() + if not self.world.pause(): + return False messagebox = MessageBox((300, 200), 'You died!', self.restart) self.parent.add(messagebox) messagebox.grab_focus() + self.world.snake.alive = False return True def restart(self): @@ -58,7 +60,8 @@ self.grab_focus() def level_completed(self, ev, widget): - self.world.pause() + if not self.world.pause(): + return False messagebox = MessageBox((300, 200), 'Level complete!', self.go_mainmenu) self.parent.add(messagebox)
--- a/mamba/world.py Thu Sep 15 23:02:47 2011 +0200 +++ b/mamba/world.py Thu Sep 15 23:07:18 2011 +0200 @@ -37,10 +37,12 @@ tile.interact(self, segment) def pause(self): - self._paused = True + was_paused, self._paused = self._paused, True + return was_paused == False def resume(self): - self._paused = False + was_paused, self._paused = self._paused, False + return was_paused == True def restart(self): self.level.restart()