Mercurial > pavulon
changeset 50:43f05da2cfa5
resetowanie planszy po naciśnięciu "r"
| author | tomu <r.drzazga@gmail.com> |
|---|---|
| date | Sat, 10 Sep 2011 12:52:44 +0200 |
| parents | 63047e7bbeb0 |
| children | 00edd84ee29b |
| files | qq.py |
| diffstat | 1 files changed, 30 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/qq.py Sat Sep 10 12:37:14 2011 +0200 +++ b/qq.py Sat Sep 10 12:52:44 2011 +0200 @@ -343,6 +343,10 @@ return self.get_bool(x, y, 'block') +class ResetLevel(Exception): + """Naciśnięto 'r', resetujemy planszę.""" + + class Game(object): """The main game object.""" @@ -379,16 +383,15 @@ overlay.image = image overlay.rect = image.get_rect().move(x*24, y*16-16) + + def pressed(self, key): + """Check if the specified key is pressed.""" + keys = pygame.key.get_pressed() + return self.pressed_key == key or keys[key] + def control(self): """Handle the controls of the game.""" - keys = pygame.key.get_pressed() - - def pressed(key): - """Check if the specified key is pressed.""" - - return self.pressed_key == key or keys[key] - def walk(d): """Start walking in specified direction.""" @@ -404,26 +407,35 @@ self.player.animation = self.player.walk_animation() self.player.pos = pos - if pressed(pg.K_UP): + if self.pressed(pg.K_UP): walk(0) - elif pressed(pg.K_DOWN): + elif self.pressed(pg.K_DOWN): walk(2) - elif pressed(pg.K_LEFT): + elif self.pressed(pg.K_LEFT): walk(3) - elif pressed(pg.K_RIGHT): + elif self.pressed(pg.K_RIGHT): walk(1) + elif self.pressed(pg.K_r): + self.pressed_key = None + raise ResetLevel() self.pressed_key = None def main(self): for level_file in LEVELS: - self.shadows = pygame.sprite.RenderUpdates() - self.sprites = SortedUpdates() - self.overlays = pygame.sprite.RenderUpdates() - self.monsters = [] - self.use_level(Level(filename=level_file)) - self.play_level() - + while 1: + self.shadows = pygame.sprite.RenderUpdates() + self.sprites = SortedUpdates() + self.overlays = pygame.sprite.RenderUpdates() + self.monsters = [] + self.use_level(Level(filename=level_file)) + try: + self.play_level() + except ResetLevel: + while self.pressed(pg.K_r): + pygame.time.wait(100) + continue + break def play_level(self): """Run the main loop."""
