使用pygame进行连续运动的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用pygame进行连续运动的问题相关的知识,希望对你有一定的参考价值。

[我试图让我的角色一直移动,只要按下该键,但到目前为止,每按一次它就移动一次,并且需要释放该键才能使他再次移动。

我尝试如图所示使用pygame.key.get_pressed(),但我无法弄清楚这是怎么回事。

def keyPressed(input_key):
    keysPressed = pygame.key.get_pressed()
    if keysPressed[input_key]:
        return True
    else:
        return False
...

run = True
while run:

    for event in pygame.event.get():
        if keyPressed(pygame.K_LEFT) and x > vel:
            x -= vel
...
答案

您必须在应用程序循环而不是主循环中调用pygame.key.get_pressed()。事件循环仅在事件发生时才执行(例如pygame.key.get_pressed())。但是应用程序循环在每个帧中执行。pygame.KEYDOWN的典型用法如下所示:

pygame.key.get_pressed()

以上是关于使用pygame进行连续运动的问题的主要内容,如果未能解决你的问题,请参考以下文章

Pygame 生涩的玩家运动

Python / Pygame中的角度运动

Pygame无响应显示[重复]

pygame中奇怪的矢量运动

Pygame - 运动加速

Python pygame - 避免意外连续点击