Mercurial > pavulon
changeset 40:d0dc54dc8dad
switching levels
| author | Radomir Dopieralski <sheep-devel@sheep.art.pl> |
|---|---|
| date | Sat, 10 Sep 2011 11:28:16 +0200 |
| parents | e3900622d58d |
| children | cb099f2e631b |
| files | qq.py |
| diffstat | 1 files changed, 23 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/qq.py Sat Sep 10 11:11:05 2011 +0200 +++ b/qq.py Sat Sep 10 11:28:16 2011 +0200 @@ -31,6 +31,12 @@ # Dimensions of the map tiles MAP_TILE_WIDTH, MAP_TILE_HEIGHT = 24, 16 +LEVELS = [ + 'level01.map', + 'level.map', +] + + class TileCache(object): """Load the tilesets lazily into global cache""" @@ -330,11 +336,6 @@ self.screen = pygame.display.get_surface() self.pressed_key = None self.game_over = False - self.shadows = pygame.sprite.RenderUpdates() - self.sprites = SortedUpdates() - self.overlays = pygame.sprite.RenderUpdates() - self.monsters = [] - self.use_level(Level(filename='level01.map')) def use_level(self, level): """Set the level as the current one.""" @@ -398,7 +399,18 @@ walk(1) 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() + + + def play_level(self): """Run the main loop.""" clock = pygame.time.Clock() @@ -410,11 +422,16 @@ while not self.game_over: # Don't clear shadows and overlays, only sprites. self.sprites.clear(self.screen, self.background) - self.sprites.update() # If the player's animation is finished, check for keypresses if self.player.animation is None: + for monster in self.monsters: + if self.level.map[monster.pos[1]][monster.pos[0]] != 'h': + break + else: + return self.control() self.player.update() + self.sprites.update() self.shadows.update() # Don't add shadows to dirty rectangles, as they already fit inside # sprite rectangles.
