Mercurial > dw
changeset 43:bad4bebb3fff
Got rid of try_walk()
| author | Radomir Dopieralski <moindev@sheep.art.pl> |
|---|---|
| date | Wed, 26 Dec 2007 10:30:50 +0100 |
| parents | 208429f8cc72 |
| children | b673723e3c51 |
| files | lib/game.py |
| diffstat | 1 files changed, 23 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/game.py Wed Dec 26 10:12:48 2007 +0100 +++ b/lib/game.py Wed Dec 26 10:30:50 2007 +0100 @@ -43,30 +43,42 @@ self.key_pressed = event.key def player_input(self): + from monster import MoveError, MoveBump, MoveBlocked while True: key_pressed = self.key_pressed self.key_pressed = None keys = pygame.key.get_pressed() - if keys[K_UP] or key_pressed==K_UP: - if self.try_walk(1): + key = lambda k: keys[k] or key_pressed==k + av = self.level.player + try: + if key(K_UP): + d = 1 + av.walk(d) return - elif keys[K_DOWN] or key_pressed==K_DOWN: - if self.try_walk(3): + elif key(K_DOWN): + d = 3 + av.walk(d) return - elif keys[K_LEFT] or key_pressed==K_LEFT: - if self.try_walk(4): + elif key(K_LEFT): + d = 4 + av.walk(d) return - elif keys[K_RIGHT] or key_pressed==K_RIGHT: - if self.try_walk(2): + elif key(K_RIGHT): + d = 2 + av.walk(d) return - elif key_pressed==K_SPACE: + except MoveBump, bump: + av.attack(d, bump.monster) + return + except MoveError: + mesg.Mesg(self.display, av, "blocked") + if key(K_SPACE): av.wait() return - elif key_pressed==K_ESCAPE: + elif key(K_ESCAPE): sys.exit(0) else: self.show_frame() - self.key_pressed = None def main_loop(self): self.display.refresh()
