2016-08-06 134 views
-1

我刚刚为python 3.3下载了pygame 1.9.2,并且​​函数无法正常工作。空壳一直告诉我同样的错误:Keydown函数不能正常工作

NameError: name 'KEYDOWN' is not defined 

我该如何解决这个问题?我对编程有点新,所以请你向我解释一下。

+0

您可以将其添加到开始: 从pygame.locals导入* – LychmanIT

+0

的可能的复制[NameError:不定义名称“KEYDOWN”(http://stackoverflow.com/questions/17556426/nameerror-name -keydown此结果不定义) – SiHa

回答

1

注意:对不起,删除我以前的答案,但堆栈溢出刚刚随机发布我的答案,我完成之前。

那么,可能有几件事情是错的。您可能正在使用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 

,只是重复,每关键要检查。

如果你只是想检查是否被按下某个键时,使用pygame.KEYDOWN与if语句,然后检查,如果你想关键嵌套被按下时,如果下声明第一if语句。像这样:

if event.type == pygame.KEYDOWN: 
    if event.key == pygame.K_WHATEVER_KEY_YOU_WANT: 
     #do code 

我假设你有你的使用遍历pygame.event.get()功能“获取”事件的事件变量。如果没有那么这里是一个游戏/窗口以上循环代码

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这个问题。