如何在 Pygame 中同时做某事?

问题描述

我在 Pygame 中制作了 PvP 游戏,但我遇到了问题。 我需要同时按下键盘上的两个键(每个键的作用不同),但我不能。 我能做什么? 我应该使用线程吗?如何? 顺便说一下,我使用的是 Mac OS X Catalina、Python 3 和 Pygame 2.0.0。

解决方法

pygame.key.get_pressed() 返回一个包含每个键状态的列表。如果某个键被按下,则该键的状态为 True,否则为 False。使用 pygame.key.get_pressed() 评估按钮的当前状态。

例如,如果要测试 ab 是否同时按下:

keys = pygame.key.get_pressed()
if keys[pygame.K_a] and keys[pygame.K_b]:
    # do somthing
    # [...]

但是,您不需要同时做事情。在同一个框架中做事情就足够了。显示每帧仅更新一次。在同一帧中发生的所有事情似乎都是同时发生的。 阅读How to run multiple while loops at a time in Python,了解如何一次做多件事。