如何使用 Pygame 阻止精灵沿对角线移动?
How do I stop a sprite from moving diagonally using Pygame?
我正在制作贪吃蛇游戏。每当我按箭头键朝一个方向移动,然后按另一个方向的键时,蛇就会沿对角线移动。 (例如,如果我先按右,然后按向上。)即使释放了前一个键,也会发生这种情况。我该如何阻止它?
# x and y marks the player's position
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x_change = -10
if event.key == pygame.K_RIGHT:
x_change = 10
if event.key == pygame.K_UP:
y_change = -10
if event.key == pygame.K_DOWN:
y_change = 10
x += x_change
y += y_change
我添加了 y_change = 0
和 x_change = 0
以重置值以仅保持正交移动。
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x_change = -10
y_change = 0
if event.key == pygame.K_RIGHT:
x_change = 10
y_change = 0
if event.key == pygame.K_UP:
y_change = -10
x_change = 0
if event.key == pygame.K_DOWN:
y_change = 10
x_change = 0
x += x_change
y += y_change
我正在制作贪吃蛇游戏。每当我按箭头键朝一个方向移动,然后按另一个方向的键时,蛇就会沿对角线移动。 (例如,如果我先按右,然后按向上。)即使释放了前一个键,也会发生这种情况。我该如何阻止它?
# x and y marks the player's position
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x_change = -10
if event.key == pygame.K_RIGHT:
x_change = 10
if event.key == pygame.K_UP:
y_change = -10
if event.key == pygame.K_DOWN:
y_change = 10
x += x_change
y += y_change
我添加了 y_change = 0
和 x_change = 0
以重置值以仅保持正交移动。
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x_change = -10
y_change = 0
if event.key == pygame.K_RIGHT:
x_change = 10
y_change = 0
if event.key == pygame.K_UP:
y_change = -10
x_change = 0
if event.key == pygame.K_DOWN:
y_change = 10
x_change = 0
x += x_change
y += y_change