python - AttributeError: 'Event' 对象没有属性 'key'

标签 python pygame attributeerror

我在运行代码时收到以下错误消息。

Traceback (most recent call last):
  File "C:/Users/user/PycharmProjects/MyDevWork/PygamesRelated/game_1.py", line 29, in <module>
    elif event.key == pygame.K_s:
AttributeError: 'Event' object has no attribute 'key'

这是我的代码:

import pygame

pygame.init()

screen = pygame.display.set_mode((720, 480))
clock = pygame.time.Clock()
FPS = 60

BLACK = (0, 0, 0)
WHITE = (255, 255, 255)

rect = pygame.Rect((0, 0), (32, 32))
image = pygame.Surface((32, 32))
image.fill(WHITE)

while True:
    clock.tick(FPS)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            quit()

        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_w:
                rect.move_ip(0, -2)
        elif event.key == pygame.K_s:
            rect.move_ip(0, 2)
        elif event.key == pygame.K_a:
            rect.move_ip(-2, 0)
        elif event.key == pygame.K_d:
            rect.move_ip(2, 0)

screen.fill(BLACK)
screen.blit(image, rect)
pygame.display.update()

我正在使用 python 3.7 和 Pycharm。

最佳答案

如前所述,您的缩进是这里的问题。检查 event.key 的所有内容都应该在 KEYDOWN 检查“内部”。将您的 while 循环更改为:

while True:
    clock.tick(FPS)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            quit()

        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_w:
                rect.move_ip(0, -2)
            elif event.key == pygame.K_s:
                rect.move_ip(0, 2)
            elif event.key == pygame.K_a:
                rect.move_ip(-2, 0)
            elif event.key == pygame.K_d:
                rect.move_ip(2, 0)

关于python - AttributeError: 'Event' 对象没有属性 'key',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57432382/

相关文章:

Python 在一段时间后挂起,按下 [Enter] 后继续

python - 如何使用 Python 按名称引用 json 数组元素?

python - 在 PyGame 中使用 ALT 键

python请求导入错误

NLP 的 Python 框架?

python - 从字符串中过滤字符

python - 使用 pygame/pyglet 从数组重建图像时颜色不正确

python - Pygame错误: Unsupported Image Format

python - 'Button' 对象没有属性 'prep_msg'

Python:BeautifulSoup 中的 find 在一台 Windows 计算机上工作正常,但在另一台计算机上工作不正确