gpt4 book ai didi

python - 为什么当我使用 pygame.key.get_pressed() 时我的角色只向左移动?

转载 作者:行者123 更新时间:2023-12-01 07:26:27 25 4
gpt4 key购买 nike

我是 Python 新手,但我决定尝试在 Pygame 中制作一款格斗游戏。我的角色只会向左移动,并且只有在强制更新时才会移动。

我尝试过:

按下按键

if event.key == pygame.K_d:

按键

if event.key == pygame.K_d or event.key == pygame.K_a:
x_change = 0

而且它在一定程度上有效。只是当你需要突然改变方向,却又无法改变方向时,这很烦人。

我还用 AND 更改了 OR,因此当两者都抬起时它会停止,但这会阻止从两个方向移动。

这样做是为了让我可以移动,而不是因为测试原因而战斗

fighting = False

while not fighting:
for event in pygame.event.get():
if event.type == pygame.QUIT:
fighting - False

keys = pygame.key.get_pressed()

if keys[pygame.K_a]:
x_change1 = -5

if keys[pygame.K_d]:
x_change1 = 5

if not keys[pygame.K_a] and keys[pygame.K_d]:
x_change1 = 0

x1 += x_change1


gameDisplay.fill(white)
fighter1(x1,y1)
pygame.display.update()
clock.tick(28)

仅当我强制更新(例如再次按 A(向左)、抬起 A 或将鼠标移到窗口上)时,我的人才向左移动 X 像素。 D(右)注册但没有移动。一旦按下A,即使按键向上,它也不会停止。
我想解决这个问题,这样我就可以更轻松地添加跳跃、攻击和玩家 2。

最佳答案

这里缺少一个 not 运算符:

if not keys[pygame.K_a] and keys[pygame.K_d]:
x_change1 = 0

像这样添加:

if not keys[pygame.K_a] and not keys[pygame.K_d]:
x_change1 = 0

关于python - 为什么当我使用 pygame.key.get_pressed() 时我的角色只向左移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57423620/

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