diff options
-rwxr-xr-x | troll | 50 |
1 files changed, 31 insertions, 19 deletions
@@ -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)) |