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()