【发布时间】:2020-09-28 03:11:19
【问题描述】:
我正在尝试为我的角色移动创建一个程序。这是我的代码
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
elif event.type == KEYDOWN:
if(event.key == K_RIGHT):
playerPos[0] +=1
if (event.key == K_RIGHT) and playerPos[0] < MAPWIDTH -1:
playerPos[0] =+ 1
这是错误
Traceback (most recent call last):
File "H:\python things\firstgame.py", line 90, in <module>
if (event.key == K_RIGHT) and playerPos[0] < MAPWIDTH -1:
AttributeError: 'Event' object has no attribute 'key'
【问题讨论】:
-
非常抱歉,这是我的移动代码,所以在游戏中,我按键盘上的向右箭头,角色向右移动。如果他在地图的边缘,它不会让角色再向右移动@Davy M
-
您也可以将您的两个
if语句组合在一起,例如if(event.type == KEYDOWN) and (event.key == K_RIGHT): -
我想你最后的
if声明不应该在那里。相反,您应该将playerPos[0] < MAPWIDTH -1条件作为上述if语句的一部分。我猜你不会有event.key,除非event.type == KEYDOWN。 -
@JohanL 就是这样!谢谢!!
-
这会起作用,因为它摆脱了 for 循环之外有问题的 if 语句。