主循环中的pygame事件键

2024-09-29 23:29:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在我的游戏中进行密钥检测,但我遇到的一个问题是我得到了这个错误。在

Traceback (most recent call last):

File "C:/Users/Desktop/problem.py", line 433, in <module>
    mainting()
  File "C:/Users/natha/Desktop/problem.py", line 316, in mainting
    if event.key == pygame.K_p:
AttributeError: 'Event' object has no attribute 'key''

我试着缩进试图解决这个错误,但这并没有起到作用。解决此错误的解决方案是什么?我也研究了其他问题,并尝试了他们的建议,但我无法找到解决问题的办法。在

以下是已被使用和删减的定义。在

^{pr2}$

这就是问题发生的地方

^{3}$

Tags: keyinpy游戏most错误line密钥
2条回答

所有涉及event.key的测试都应该在由elif event.type == pygame.KEYDOWN:开始的块的内,否则它只会尝试获取所有事件的属性key,而与键盘无关的任何事件,如鼠标移动或计时器,都没有key属性。在

只需重新缩进您的程序,以便“keys”的测试只在事件类型为“KEYDOWN”时执行,并且应该可以工作。在

因为你的缩进是错的。在

下面是正确的代码:

            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                      player._vx = -3

                if event.key == pygame.K_p:



                    print('paused')
                    pygame.display.update()

                if event.key == pygame.K_r or not player.alive():

                    print('gameover')
                    pygame.display.flip()

                    elif event.key == pygame.K_RIGHT:
                        player._vx = 3
                        Enemy.go_left()
                    elif event.key == pygame.K_UP:
                        player.jump()

相关问题 更多 >

    热门问题