summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorraylu <ray.lu@getclever.com>2013-10-11 20:55:59 -0700
committerraylu <ray.lu@getclever.com>2013-10-11 22:24:55 -0700
commit01eeb9a89afa2b3ac553c9c3ecd687bb5d3fcd36 (patch)
treecb7a9c15103f82e1045aa990f0b3270dcada3747
parentd625b9ed1ec14a2e125a750dca2ec537acc18ded (diff)
downloadtroll-01eeb9a89afa2b3ac553c9c3ecd687bb5d3fcd36.tar.xz
use pygame.clock.tick and pygame.KEYUP
-rwxr-xr-xtroll50
1 files changed, 31 insertions, 19 deletions
diff --git a/troll b/troll
index 29b0dc7..7745746 100755
--- a/troll
+++ b/troll
@@ -18,32 +18,44 @@ class Tileset(object):
size = width, height = 640, 480
black = (0, 0, 0)
+render_x = 0
+render_y = 13*16
pygame.init()
screen = pygame.display.set_mode(size)
tileset = Tileset(screen)
-pygame.key.set_repeat(100, 100)
+clock = pygame.time.Clock()
+
+keys = {
+ pygame.K_LEFT: False,
+ pygame.K_RIGHT: False,
+ pygame.K_UP: False,
+ pygame.K_DOWN: False,
+}
+def handle_event(event):
+ if event.type == pygame.KEYDOWN:
+ if event.key in keys.iterkeys():
+ keys[event.key] = True
+ elif event.type == pygame.KEYUP:
+ if event.key in keys.iterkeys():
+ keys[event.key] = False
+ elif event.type == pygame.QUIT:
+ sys.exit()
-render_x = 0
-render_y = 13*16
while True:
- keydown = False
+ clock.tick(60)
for event in pygame.event.get():
- if event.type == pygame.KEYDOWN:
- keydown = True
- elif event.type == pygame.QUIT:
- sys.exit()
-
- if keydown:
- pressed_keys = pygame.key.get_pressed()
- if pressed_keys[pygame.K_RIGHT]:
- render_x += 16
- if pressed_keys[pygame.K_LEFT]:
- render_x -= 16
- if pressed_keys[pygame.K_DOWN]:
- render_y += 16
- if pressed_keys[pygame.K_UP]:
- render_y -= 16
+ handle_event(event)
+
+ SPEED = 4
+ if keys[pygame.K_RIGHT]:
+ render_x += SPEED
+ if keys[pygame.K_LEFT]:
+ render_x -= SPEED
+ if keys[pygame.K_DOWN]:
+ render_y += SPEED
+ if keys[pygame.K_UP]:
+ render_y -= SPEED
screen.fill(black)
tileset.render_person((render_x, render_y))