使用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
...
拉比德76

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

while run:

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    #<---| Indentation

    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT] and x > vel:
        x -= vel
    if keys[pygame.K_RIGHT] and x < width-vel:
        x += vel

    # [...]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章