gpt4 book ai didi

Python : pygame. key.get_pressed 不起作用

转载 作者:行者123 更新时间:2023-12-01 05:37:52 26 4
gpt4 key购买 nike

我知道已经有一些关于同一问题的问题,但提出的解决方案对我没有帮助。

我想在任何给定时间监视箭头键的状态(按下/未按下),因此我有以下代码:

import pygame

pygame.init()
a=[0,0,0,0]

while True:
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
a[0]=1;
else:
a[0]=0;
if keys[pygame.K_RIGHT]:
a[1]=1;
else:
a[1]=0;

if keys[pygame.K_UP]:
a[2]=1;
else:
a[2]=0;

if keys[pygame.K_DOWN]:
a[3]=1;
else:
a[3]=0;

print a
pygame.event.pump()

所以,基本上,我一直打印一个由 4 个数字组成的列表 a,每个数字代表一个箭头键(如果按下则为 1,否则为 0)。

但是,即使我长时间按下箭头键,列表中的所有值也始终为零。

我还尝试打印整个 keys 数组:结果所有条目都再次为零,无论我按下哪个键以及按下多长时间

任何帮助将不胜感激...

谢谢!

编辑:忘记提及我在 Windows 7 上使用 python 2.7

最佳答案

首先,如果您尚未实际创建 pygame 窗口,则不会将任何事件传递给 pygame,因此 pygame.key.get_pressed() 的结果不会更新。 Pygame 仅接收当前 pygame 窗口上的事件。您可能正在查看控制台,它没有接收事件。我在 pygame.init() 之后添加了 pygame.display.set_mode((100,100)) ,然后运行程序。我在 pygame 窗口内单击。然后控制台开始在控制台中显示相应的内容。

还建议添加一些东西来暂停循环,例如 time.sleep 以及事件检查之类的东西来打破循环。 (正确退出)

关于Python : pygame. key.get_pressed 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18466647/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com