[英]i'm trying to make a 2 players racing game with pygame and event.key don't work
我正在尝试制作一个2人游戏,当我尝试添加event.key == pygame.K_LEFT
它说AttributeError: 'Event' object has no attribute 'key'
。
我尝试了很多东西作为添加()
,但没有修复它,我也不知道它。
码:
import pygame
pygame.init()
display_width = 1280
display_height = 720
black = (0, 0, 0)
white = (255, 255, 255)
red = (255, 0, 0)
green = (0, 255, 0)
blue = (0, 0, 255)
gameDisplay = pygame.display.set_mode((display_width, display_height))
pygame.display.set_caption('U-race multiplayer')
clock = pygame.time.Clock()
car1 = pygame.image.load('car1.png')
def carone(xone, yone):
gameDisplay.blit(car1,(xone, yone))
xone = (display_width * 0.48)
yone = (display_height * 0.8)
xone_change = 0
crashed = False
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:
xone_change = -5
elif event.key == pygame.K_RIGHT:
xone_change = 5
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
xone_change = 0
错误信息:
RESTART: C:\Users\Osamas\Desktop\U-racing multiplayer\U-racing multiplayer.py
Traceback (most recent call last):
File "C:\Users\Osamas\Desktop\U-racing multiplayer\U-racing multiplayer.py", line 44, in <module>
elif event.key == pygame.K_RIGHT:
AttributeError: 'Event' object has no attribute 'key'
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
xone_change = -5
elif event.key == pygame.K_RIGHT: #indented to be part of the keydown events
xone_change = 5
你要这个。 你的缩进是错的。
你有elif event.key == pygame.K_RIGHT:
用你的event.type检查,如果你考虑它就没有意义。
您收到错误的原因是因为不同的事件具有不同的属性。 您可以在官方pygame文档中查看哪个事件具有哪些属性。
让我们举两个类型的事件之间的例子:
这意味着在我们确保事件的类型为KEYDOWN
(或KEYUP
)之前,我们无法检查事件中的键属性。
在您的代码中,您有:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
xone_change = -5
elif event.key == pygame.K_RIGHT:
xone_change = 5
如果事件类型不是KEYDOWN
那么您将使用事件的键属性进行检查,如果事件的类型为QUIT
, MOUSEBUTTONDOWN
或任何其他非KEYDOWN
或KEYUP
事件,则会引发属性错误。
为了纠正这个问题,你可以像MooingRawr一样回答并确保你在第一个if语句中缩进了最后两行。 我以为我会回答为什么这是错的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.