gpt4 book ai didi

python - Get_Pressed 行为异常

转载 作者:太空宇宙 更新时间:2023-11-03 18:57:46 25 4
gpt4 key购买 nike

我的程序中的键盘事件遇到一些问题。长话短说,我正在使用 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

最佳答案

我不知道这是否有效,但值得一试。

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
else:
square.spd_x=0
if (keys[K_KP4]):
square.spd_x-=5
if (keys[K_KP8]):
square.spd_y=-5
else:
square.spd_y=0
if (keys[K_KP2]):
square.spd_y +=5

让我知道它是否有效。

关于python - Get_Pressed 行为异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16895215/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com