Mercurial > mhrok
changeset 9:f1b43f6480c5
Separate player and its sprite
| author | Radomir Dopieralski <sheep-devel@sheep.art.pl> |
|---|---|
| date | Sun, 26 Feb 2012 14:21:36 +0100 |
| parents | d958026f72b5 |
| children | 1706e5370f76 |
| files | mhrok.png mhrok.py |
| diffstat | 2 files changed, 15 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/mhrok.py Sun Feb 26 11:19:22 2012 +0100 +++ b/mhrok.py Sun Feb 26 14:21:36 2012 +0100 @@ -63,7 +63,7 @@ ] -class Player(Mob): +class PlayerMob(Mob): animations = [ [0, 0, 1, 1, 0, 0, 2, 2], [5, 5, 6, 6, 5, 5, 7, 7], @@ -85,18 +85,20 @@ (0, 0), ] - def control(self): + +class Player(object): + def control(self, level): keys = pygame.key.get_pressed() if keys[pg.K_UP]: - self.animation = 2 + self.mob.animation = 2 elif keys[pg.K_LEFT]: - self.animation = 1 + self.mob.animation = 1 elif keys[pg.K_DOWN]: - self.animation = 0 + self.mob.animation = 0 elif keys[pg.K_RIGHT]: - self.animation = 3 + self.mob.animation = 3 else: - self.animation = 4 + self.animation % 4 + self.mob.animation = 4 + self.mob.animation % 4 class SortedUpdates(pygame.sprite.RenderUpdates): @@ -159,8 +161,10 @@ mob = Mob(tiles, (x, y)) sprites.add(mob) shadows.add(Shadow(tiles, mob)) - sprites.add(pc) - shadows.add(Shadow(tiles, pc)) + mob = PlayerMob(tiles, (0, 0)) + pc.mob = mob + sprites.add(mob) + shadows.add(Shadow(tiles, mob)) return sprites, shadows @@ -200,13 +204,13 @@ self.clock = pygame.time.Clock() self.game_over = False - self.pc = Player(self.display.tiles, (0, 0)) + self.pc = Player() self.level = Level((15, 14)) self.display.render_level(self.level, self.pc) def main(self): while not self.game_over: - self.pc.control() + self.pc.control(self.level) self.display.draw() self.clock.tick(15) for event in pygame.event.get():
