Keydown功能不起作用

时间:2016-08-06 21:38:26

标签: python python-3.x pygame

我刚刚为python 3.3下载了pygame 1.9.2,keydown函数无效。 IDLE shell一直告诉我同样的错误:

NameError: name 'KEYDOWN' is not defined

我该如何解决这个问题?我对编程很陌生,所以请你解释一下。

1 个答案:

答案 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的一些问题。