Python 3.5.2和PyGame 1.9.2,pygame.event.get()无法识别Keystokes

时间:2017-01-08 12:49:19

标签: python-3.x pygame

所以我浏览了网站,其他人试图找出为什么我的箭头键在尝试在pygame中移动我的数字时似乎没有被识别出来。我尝试过几次修复,但没有运气。当我按下箭头键时,我看到我的光标在终端中移动,但它在我的游戏窗口中没有任何作用(即使我确保游戏窗口是活动窗口)。当我打印事件语句时,只显示鼠标被识别。

import pygame
pygame.init()
black = (0, 0, 0)
white = (255, 255, 255)
display_width = 800
display_height = 600

gameDisplay = pygame.display.set_mode((display_width, display_height))
pygame.display.set_caption('A bit Racey')

clock = pygame.time.Clock()
crashed = False
carImg = pygame.image.load('racecar.png')


def car(x, y):
    gameDisplay.blit(carImg, (x, y))


x = (display_width * 0.45)
y = (display_height * 0.8)
x_change = 0
car_speed = 0

while not crashed: 
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            crashed = True

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                x_change = -5
            elif event.key == pygame.K_RIGHT:
                x_change = 5
        if event.type == pygame.KEYUP:
            if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
                x_change = 0

    x += x_change
    gameDisplay.fill(white)
    car(x, y)
    clock.tick(60)
    pygame.display.update()

pygame.quit()
quit()

我看到窗口上有我的"赛车"很好,我只是无法移动。 的 修改 关于"事件的答案"拼写错误没有解决问题(我在尝试20个左右的不同变体中的一个时犯了错误,我为这个错误道歉)。无论编辑的代码仍然不允许我移动汽车。即使游戏显示是活动窗口,光标也会在控制台中移动。

1 个答案:

答案 0 :(得分:1)

您的代码甚至无法正常工作。

在控制台中运行它,你会看到

Traceback (most recent call last):
  File "<pyshell#1>", line 26, in <module>
    for event in pygame.events.get():
AttributeError: module 'pygame' has no attribute 'events'

中有拼写错误
for event in pygame.events.get():

event

中必须s pygame.event.get():

之后代码没有问题,我可以移动对象。

似乎你提出了错误的代码。或者你运行错误的代码。