changeset 51:00edd84ee29b

use clock.tick for waiting
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Sat, 10 Sep 2011 13:00:15 +0200
parents 43f05da2cfa5
children d38d741f7e5c
files qq.py
diffstat 1 files changed, 15 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/qq.py	Sat Sep 10 12:52:44 2011 +0200
+++ b/qq.py	Sat Sep 10 13:00:15 2011 +0200
@@ -19,6 +19,7 @@
 """
 
 import ConfigParser
+import sys
 
 import pygame
 import pygame.locals as pg
@@ -354,6 +355,7 @@
         self.screen = pygame.display.get_surface()
         self.pressed_key = None
         self.game_over = False
+        self.clock = pygame.time.Clock()
 
     def use_level(self, level):
         """Set the level as the current one."""
@@ -433,14 +435,13 @@
                     self.play_level()
                 except ResetLevel:
                     while self.pressed(pg.K_r):
-                        pygame.time.wait(100)
+                        self.tick_loop()
                     continue
                 break
 
     def play_level(self):
         """Run the main loop."""
 
-        clock = pygame.time.Clock()
         # Draw the whole screen initially
         self.screen.blit(self.background, (0, 0))
         self.overlays.draw(self.screen)
@@ -470,14 +471,18 @@
             self.overlays.draw(self.screen)
             # Update the dirty areas of the screen
             pygame.display.update(dirty)
-            # Wait for one tick of the game clock
-            clock.tick(15)
-            # Process pygame events
-            for event in pygame.event.get():
-                if event.type == pg.QUIT:
-                    self.game_over = True
-                elif event.type == pg.KEYDOWN:
-                    self.pressed_key = event.key
+            self.tick_loop()
+
+    def tick_loop(self):
+        # Wait for one tick of the game self.clock
+        self.clock.tick(16)
+        # Process pygame events
+        for event in pygame.event.get():
+            if (event.type == pg.QUIT or
+                event.type == pg.KEYDOWN and event.key == pg.K_ESCAPE):
+                sys.exit(0)
+            elif event.type == pg.KEYDOWN:
+                self.pressed_key = event.key
 
 
 if __name__ == "__main__":