diff options
Diffstat (limited to 'character.py')
-rw-r--r-- | character.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/character.py b/character.py new file mode 100644 index 0000000..665bd19 --- /dev/null +++ b/character.py @@ -0,0 +1,43 @@ +import pygame + +from tileset import Tileset + +class Character(object): + movement = [0, 0] + + def __init__(self, tilesize): + self.tilesize = tilesize + self.render_x = 0 + self.render_y = 13*tilesize + + def frame(self, keys): + # are we done moving? + if self.render_x % self.tilesize == 0: + self.movement[0] = 0 + if self.render_y % self.tilesize == 0: + self.movement[1] = 0 + + SPEED = 2 + direction = None + # can we start moving? + if self.movement[1] == 0: + if keys[pygame.K_DOWN]: + self.movement[1] = SPEED + direction = Tileset.DOWN + elif keys[pygame.K_UP]: + self.movement[1] = -SPEED + direction = Tileset.UP + if self.movement[0] == 0: + if keys[pygame.K_RIGHT]: + self.movement[0] = SPEED + if not self.movement[1]: # prefer up/down when moving diagonally + direction = Tileset.RIGHT + elif keys[pygame.K_LEFT]: + self.movement[0] = -SPEED + if not self.movement[1]: + direction = Tileset.LEFT + + # move! + self.render_x += self.movement[0] + self.render_y += self.movement[1] + return direction |