微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pygame 的 pygame.event.get() 的键值在今天是一个荒谬的数字,为什么?

如何解决Pygame 的 pygame.event.get() 的键值在今天是一个荒谬的数字,为什么?

我的程序过去常常运行以下代码,当我按下左移时它运行良好。但截至今天,它突然停止工作,没有更改代码,没有重新安装,没有更新,因为它正在工作并停止工作。

#running on windows 10
while True:
    for event in pygame.event.get():
        if event.type == KEYDOWN:
            print(event)
            if event.key == 304:#left shift
                print("worked")

打印(事件)的输出曾经是:

现在是:

我知道如何解决它,或者以不同的方式解决它,但是有人知道 'key' 突然变成一个荒谬数字的原因吗?是不是我的电脑有问题,它给出的键值搞砸了?

解决方法

如果您不自己编写关键代码会有所帮助。如果使用预定义的 pygame 密钥会更好,例如:

while True:
    for event in pygame.event.get():
        if event.type == KEYDOWN:
            print(event)
            if event.key == pygame.K_LSHIFT:
                print("worked")

这是 pygame 的预定义键列表。

pygame documentation - pygame.key

,

如果您想检测是否按下了 LEFT,请使用 pygame.K_LEFT

让我参考 pygame.key 模块的文档:

可移植性说明:pygame 1 和 2 之间键常量的整数不同。始终使用键常量 (K_a) 而不是直接使用整数 (97),以便您的键处理代码在 pygame 1 和 pygame 上都能正常工作2.

密钥的用户友好名称可以通过 pygame.key.name() 获得:

从键盘按钮 id 常量中获取按钮的描述性名称。

键盘事件 KEYDOWNKEYUP(参见 pygame.event 模块)创建一个带有附加属性的 pygame.event.Event 对象。按下的键可以从 key 属性中获取。 unicode 属性提供键盘输入的 Unicode 表示。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。