Mercurial > rinkhals
diff gamelib/engine.py @ 372:90abd39e6c3c 1.0.x
Merge in post-pyweek fixes (r359:371).
author | Simon Cross <hodgestar@gmail.com> |
---|---|
date | Tue, 13 Oct 2009 20:28:48 +0000 |
parents | a36ab7dd0eb9 |
children | 463802281182 |
line wrap: on
line diff
--- a/gamelib/engine.py Tue Oct 13 20:12:06 2009 +0000 +++ b/gamelib/engine.py Tue Oct 13 20:28:48 2009 +0000 @@ -216,9 +216,12 @@ elif e.type is ANIM_ID: self.game.gameboard.run_animations() elif e.type is MOVE_FOX_ID: - # Timer aren't nessecairly ordered, so we make sure - # we don't get a ANIM event until at least cycle after this - pygame.time.set_timer(ANIM_ID, self.cycle_time) + # ensure no timers trigger while we're running + pygame.time.set_timer(ANIM_ID, 0) + pygame.time.set_timer(MOVE_FOX_ID, 0) + # Clear any queued timer events, so we don't full the queue + pygame.event.clear(ANIM_ID) + pygame.event.clear(MOVE_FOX_ID) # Ensure any outstanding animitions get cleaned up self.game.gameboard.run_animations() self.cycle_count += 1 @@ -227,6 +230,9 @@ if self.game.gameboard.move_foxes(): # All foxes are gone/safe, so dawn happens return pygame.event.post(START_DAY) + # Re-enable timers + pygame.time.set_timer(ANIM_ID, self.cycle_time) + pygame.time.set_timer(MOVE_FOX_ID, 4*self.cycle_time) elif e.type is not QUIT: self.game.main_app.event(e)