为什么我的角色只在我使用 pygame.key.get_pressed() 时向左移动?
Why does my character only move left when I use pygame.key.get_pressed()?
我是 Python 的新手,但我决定尝试在 Pygame 中制作一款格斗游戏。
我的角色只会在强制更新时向左移动。
我试过了:
向下键
if event.key == pygame.K_d:
向上键
if event.key == pygame.K_d or event.key == pygame.K_a:
x_change = 0
并且它在一定程度上起作用。就是需要突然变向,又变不了方向,很烦人。
我还将 OR 更改为 AND,因此当两者都被抬起时它会停止,但这会阻止从两个方向移动。
这样做是为了让我可以在不战斗的情况下移动,因为测试原因
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)
我的家伙只在我强制更新时才向左移动 X 个像素,例如再次按 A(向左)抬起 A 或将鼠标移到 window 上。 D(右)注册但没有移动。一旦按下A,即使按下键也不会停止。
我想解决这个问题,这样我就可以更轻松地添加跳跃、攻击和玩家 2。
您在这里缺少非运算符:
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 中制作一款格斗游戏。 我的角色只会在强制更新时向左移动。
我试过了:
向下键
if event.key == pygame.K_d:
向上键
if event.key == pygame.K_d or event.key == pygame.K_a:
x_change = 0
并且它在一定程度上起作用。就是需要突然变向,又变不了方向,很烦人。
我还将 OR 更改为 AND,因此当两者都被抬起时它会停止,但这会阻止从两个方向移动。
这样做是为了让我可以在不战斗的情况下移动,因为测试原因
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)
我的家伙只在我强制更新时才向左移动 X 个像素,例如再次按 A(向左)抬起 A 或将鼠标移到 window 上。 D(右)注册但没有移动。一旦按下A,即使按下键也不会停止。
我想解决这个问题,这样我就可以更轻松地添加跳跃、攻击和玩家 2。
您在这里缺少非运算符:
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