pygame按键持续按下响应

在写一个pygame 的一个小的飞机大战程序但是碰到一个小问题,仅此记录

通过键盘事件操控飞机的左右移动:
elif event.type == KEYDOWN:

        # 检测按键是否是a或者left
         if event.key == K_a or event.key == K_LEFT:
              plane_temp.move_left()

虽然能实现移动,但是每一次的移动都需要按一下按钮,使我感觉很难受
想实现可以持续按下,并且可以相应的效果
查资料发现

pygame.key.set_repeat() control how held keys are repeated
set_repeat() -> None set_repeat(delay, interval) -> None When the
keyboard repeat is enabled, keys that are held down will generate
multiple pygame.KEYDOWN events. The delay is the number of
milliseconds before the first repeated pygame.KEYDOWN will be sent.
After that another pygame.KEYDOWN will be sent every interval
milliseconds. If no arguments are passed the key repeat is disabled.

When pygame is initialized the key repeat is disabled.

按键是默认只能按下一次,于是就取了一个巧,查看哪些按键是已进按下的,后通过循环实现对应操作

key_pressed = pygame.key.get_pressed()
    if key_pressed[pygame.K_a] or key_pressed[pygame.K_LEFT]
        plane_temp.move_left()

pygame的对应帮助文档:
https://www.pygame.org/docs/ref/key.html#comment_pygame_key_set_repeat

你可能感兴趣的:(pygame按键持续按下响应)