Mercurial > pavulon
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__":
