changeset 2:405e7d25f9f4

Randomly walking monsters
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Sun, 10 Mar 2013 23:26:48 +0100
parents e289d18ee9fa
children b58123926938
files fhrl/__main__.py
diffstat 1 files changed, 18 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/fhrl/__main__.py	Sun Mar 10 23:22:08 2013 +0100
+++ b/fhrl/__main__.py	Sun Mar 10 23:26:48 2013 +0100
@@ -81,9 +81,13 @@
         x = self.x + DX[d]
         y = self.y + DY[d]
         if level.grid[y][x]:
-            return
+            return False
         self.rect.topleft = x * 48 - 24, y * 32 - 32
         self.x, self.y = x, y
+        return True
+
+    def act(self, level):
+        self.walk(random.randrange(4), level)
 
 
 class Hero(Mob):
@@ -96,13 +100,14 @@
                 raise SystemExit()
             elif event.type == pygame.KEYDOWN:
                 if event.key == pygame.K_UP:
-                    self.walk(0, level)
+                    return self.walk(0, level)
                 elif event.key == pygame.K_RIGHT:
-                    self.walk(1, level)
+                    return self.walk(1, level)
                 elif event.key == pygame.K_DOWN:
-                    self.walk(2, level)
+                    return self.walk(2, level)
                 elif event.key == pygame.K_LEFT:
-                    self.walk(3, level)
+                    return self.walk(3, level)
+        return False
 
 
 class Game(object):
@@ -128,13 +133,14 @@
         self.screen.blit(self.background, (0, 0))
         self.sprites.draw(self.screen)
         pygame.display.flip()
-        running = True
-        while running:
-            self.sprites.clear(self.screen, self.background)
-            dirty = self.sprites.draw(self.screen)
-            pygame.display.update(dirty)
-            self.level.hero.act(self.level)
-            self.clock.tick(12)
+        while True:
+            while not self.level.hero.act(self.level):
+                self.sprites.clear(self.screen, self.background)
+                dirty = self.sprites.draw(self.screen)
+                pygame.display.update(dirty)
+                self.clock.tick(12)
+            for m in self.level.monsters:
+                m.act(self.level)
 
 
 Game().run()