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