【问题标题】:How to do something at the same time in Pygame? [duplicate]如何在 Pygame 中同时做某事? [复制]
【发布时间】:2021-04-09 00:27:12
【问题描述】:

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

【问题讨论】:

    标签: python python-3.x macos pygame keyboard


    【解决方案1】:

    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,了解如何一次做不止一件事。

    【讨论】:

    • 谢谢,但我需要每个键同时执行不同的操作。
    • @Itay 还有什么?您可以同时评估所有键。很可能,您完全误解了应用程序循环的概念。这似乎是XY problem。你不需要同时做事。在同一框架内做事就足够了。显示每帧仅更新一次。同一帧中发生的所有事情似乎都是同时发生的。
    猜你喜欢
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-11
    相关资源
    最近更新 更多