我的程序中的键盘事件有一些问题。长话短说,我正在使用 pygame.KEYDOWN 事件,但后来几乎每个人都听说 get_pressed() 是一个更合适的选择。我相应地更改了我的代码,但遇到了一些问题
首先:
如果我拿着两把钥匙,但只释放了一把,pygame 出于某种原因认为我已经释放了这两个钥匙。这意味着对角线运动实施起来很痛苦
第二:
对角线运动有效,但仅在某些情况下:
我上下移动并按住左或右
如果我向左或向右并按住或按住,它(出于某种原因)不起作用
这是我一直在使用的代码:
while done == False:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
keys = pygame.key.get_pressed()
if (keys[K_KP6]):
square.spd_x+=5
if square.spd_x > 5: # Put these speed limits in a function
square.spd_x = 5
elif (keys[K_KP4]):
square.spd_x -=5
if square.spd_x <-5:
square.spd_x = -5
elif (keys[K_KP8]):
square.spd_y -=5
if square.spd_y <-5:
square.spd_y = -5
elif (keys[K_KP2]):
square.spd_y +=5
if square.spd_y >5:
square.spd_y = 5
else:
square.spd_x = 0
square.spd_y = 0
如果有人能阐明这个问题,我将不胜感激,非常感谢您尝试回答
谢谢 :D