Mercurial > mamba
view mamba/world.py @ 304:49fe66680ff8
And even death shall lose it's mysteries
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Fri, 16 Sep 2011 17:37:28 +0200 |
parents | 71bc946ce1f1 |
children | e89702425a73 |
line wrap: on
line source
"""World state (level, plus snake, plus other sprites).""" import time from mamba.snake import Snake class World(object): def __init__(self, level): self.level = level self.restart() def get_size(self): return self.level.get_size() def draw(self, surface): self.level.draw(surface) self.snake.draw(surface) def get_sprite(self, sprite_id): return self.level.extra_sprites[sprite_id] def update(self): prev = self._prev self._prev = time.time() if self._paused: return if prev is None: return dt = self._prev - prev self.snake.update(dt, self) def interact(self, segment): tiles = segment.filter_collisions(self.level.sprites) for tile in tiles: tile.interact(self, segment) def pause(self): was_paused, self._paused = self._paused, True return was_paused == False def resume(self): was_paused, self._paused = self._paused, False return was_paused == True def restart(self): self.level.restart() tile_pos, orientation = self.level.get_entry() self.snake = Snake(tile_pos, orientation) self._prev = None self._paused = False