我的程序曾经运行以下代码,当我按下左移键时它运行得很好。但截至今天,它突然停止工作,没有更改代码,没有重新安装,没有更新,因为它正在工作并停止工作。
#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")
print(event) 的输出曾经是:
现在是:
我知道如何修复它,或者以不同的方式进行,但是有人知道
'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 的预定义键列表。
如果您想检测是否按下了
LEFT,请使用
pygame.K_LEFT
。
pygame.key
模块的文档:
可移植性说明:pygame 1 和 2 之间键常量的整数不同。始终使用键常量 (
) 而不是直接使用整数 (97),以便您的键处理代码在 pygame 1 和 pygame 2 上都能正常运行。K_a
pygame.key.name()
: 获得
从键盘按钮 id 常量获取按钮的描述性名称。
键盘事件
KEYDOWN
和 KEYUP
(参见 pygame.event 模块)创建一个具有附加属性的 pygame.event.Event
对象。按下的键可以从 key
属性获取。 unicode
属性提供键盘输入的 Unicode 表示形式。
您已启用数字锁定。
启用
num-lock
后,event.mod
是 4096
而不是 0
(pygame.KMOD_NONE
)