我刚刚为python 3.3下载了pygame 1.9.2,keydown
函数无效。 IDLE shell一直告诉我同样的错误:
NameError: name 'KEYDOWN' is not defined
我该如何解决这个问题?我对编程很陌生,所以请你解释一下。
答案 0 :(得分:1)
注意:很抱歉删除我以前的答案,但Stack Overflow只是在我完成之前随机发布了我的答案。
嗯,可能有几件事情错了。您可能正在使用pygame.key.keydown()
,这是错误的,您应该使用pygame.key.get_pressed()
。
但我怀疑你的代码错误的是你没有正确使用pygame.KEYDOWN
。
如果您在按住某个键时尝试执行某些操作,请使用pygame.key.get_pressed()
,并执行以下操作:
key = pygame.key.get_pressed()
if key[pygame.K_WHATEVER_KEY_YOU_WANT]:
# do code
然后对要检查的每个键重复一遍。
如果您只是想检查某个键是否被按下,请使用带有if语句的pygame.KEYDOWN
,然后检查是否在嵌套的if语句下按下了您想要的键第一个if语句。像这样:
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_WHATEVER_KEY_YOU_WANT:
#do code
我假设你有一个事件变量用于迭代pygame.event.get()
函数&#39}得到'事件。如果没有,那么游戏/窗口循环中的代码高于:
running = True # variable to control while loop
while running: # while the variable running is equal to true
for event in pygame.event.get(): # use the variable 'event' to iterate over user events
if event.type == pygame.QUIT: # test if the user is trying to close the window
running = False # break the loop if the user is trying to close the window
pygame.quit() # de-initialize pygame module
quit() # quit() the IDE shell
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_WHATEVER_KEY_YOU_WANT:
#do code
这基本上就是你使用pygame.KEYDOWN
的方式。然而,这可能不是唯一的方法。我建议(因为你是编程新手)阅读他们官方网站上的pygame docs,了解有关检查pygame中键输入的更多信息。并阅读了answers的一些问题。