blob: 665bd198aa11c31ef8a3cb0599aa36111acc434f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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
|