Mercurial > dw
changeset 44:b673723e3c51
Moved show_frame to display
| author | Radomir Dopieralski <moindev@sheep.art.pl> |
|---|---|
| date | Wed, 26 Dec 2007 10:52:57 +0100 |
| parents | bad4bebb3fff |
| children | 9f1536795477 |
| files | lib/display.py lib/game.py |
| diffstat | 2 files changed, 20 insertions(+), 32 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/display.py Wed Dec 26 10:30:50 2007 +0100 +++ b/lib/display.py Wed Dec 26 10:52:57 2007 +0100 @@ -20,11 +20,13 @@ def __init__(self): pygame.init() + self.clock = pygame.time.Clock() self.screen = pygame.display.set_mode((320, 320)) self.sprites = SortedUpdates() self.shadows = pygame.sprite.RenderUpdates() self.effects = pygame.sprite.RenderUpdates() self.scrollpos = [-48,-32] + self.key_pressed = None def get_image(self, filename, cache={}): """Read an image from disk, with caching.""" @@ -133,4 +135,14 @@ dirty += self.sprites.draw(self.screen) dirty += self.effects.draw(self.screen) pygame.display.update(dirty) - + + def show_frame(self): + # Update the screen + self.update() + self.clock.tick(15) + # Process input + for event in pygame.event.get(): + if event.type==QUIT: + sys.exit(0) + elif event.type==KEYDOWN: + self.key_pressed = event.key
--- a/lib/game.py Wed Dec 26 10:30:50 2007 +0100 +++ b/lib/game.py Wed Dec 26 10:52:57 2007 +0100 @@ -11,42 +11,17 @@ class Game: def __init__(self): self.display = display.Display() - self.clock = pygame.time.Clock() - self.key_pressed = None # Prapare the map self.level = Level('data/map.txt') self.display.draw_map(self.level.map) self.display.place_sprites(self.level.monsters.values()) - - def try_walk(self, d): - from monster import MoveError, MoveBump, MoveBlocked - try: - try: - self.level.player.walk(d) - except MoveBump, bump: - self.level.player.attack(d, bump.monster) - return True - except MoveError: - mesg.Mesg(self.display, self.level.player, "blocked") - return False - - def show_frame(self): - # Update the screen - self.display.scroll_after(self.level.player.rect) - self.display.update() - self.clock.tick(15) - # Process input - for event in pygame.event.get(): - if event.type==QUIT: - sys.exit(0) - elif event.type==KEYDOWN: - self.key_pressed = event.key - + self.level.player.display = self.display + def player_input(self): from monster import MoveError, MoveBump, MoveBlocked while True: - key_pressed = self.key_pressed - self.key_pressed = None + key_pressed = self.display.key_pressed + self.display.key_pressed = None keys = pygame.key.get_pressed() key = lambda k: keys[k] or key_pressed==k av = self.level.player @@ -78,7 +53,7 @@ elif key(K_ESCAPE): sys.exit(0) else: - self.show_frame() + self.display.show_frame() def main_loop(self): self.display.refresh() @@ -87,5 +62,6 @@ for monster in self.level.monsters.values(): monster.act() for step in range(8): - self.show_frame() + self.display.scroll_after(self.level.player.rect) + self.display.show_frame()
