尽管狩猎我似乎无法找到这个看似简单问题的答案:
我是pygame的新手(但不是python),并且我试图通过连续按钮按下来获得一些代码 - 但是get_pressed似乎对我不起作用。我这样做只是为了检查我是不是疯了(我已经省略了导入以使它对你们整洁):
def buttonpress():
while True:
keys = pygame.key.get_pressed()
print keys[K_SPACE]
time.sleep(0.5)
buttonpress()
据我所知,当你按下空格键时,这应该返回一个“1”,但不管你用什么键改变它 - 它只是返回一个无穷无尽的零串。
我错过了什么?
由于
答案 0 :(得分:1)
没有代码处理输入以按下所有键。为了使其工作,您需要调用event.poll()。
所以你的代码看起来像这样。
import pygame
from pygame.locals import *
import time
pygame.init()
screen = pygame.display.set_mode((640,380))
def buttonpress():
while True:
keys = pygame.key.get_pressed()
print (keys[K_SPACE])
time.sleep(0.5)
pygame.event.poll()
buttonpress()
还有一件事,不要使用time.sleep()。这会暂停线程,并可能导致操作系统认为您的应用程序没有响应(因为它不会从事件队列中删除事件)。