Pygame - 围绕 pygame window 移动一个正方形,但在改变方向时无法停止当前移动,导致正方形沿对角线移动
Pygame - Moving a square around pygame window but cannot stop current movement when changing direction, resulting in the square moving diagonally
我正在使用以下代码(在一个循环中)在 pygame window 周围移动一个正方形:
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_UP:
vel_y = -25
elif event.key == K_DOWN:
vel_y = 25
elif event.key == K_LEFT:
vel_x = - 25
elif event.key == K_RIGHT:
vel_x= 25
y += vel_y
x += vel_x
x 和 y 是正方形的位置。
这段代码在按下箭头键时不断地向我想要的方向移动方块。但是,我 运行 遇到了如果我向上或向下然后向左或向右按,它会沿对角线在屏幕上移动的问题。
我需要一个解决方案来阻止它在当前方向上移动并改变到新的方向。不能同时向两个方向移动。
当附加键被按下时,另一个vel_
仍然被设置为一个值。要解决此问题,您需要做的就是在设置新方向时将另一个速度设置为 0。
if event.key == K_UP:
vel_y = -25
vel_x = 0
elif event.key == K_DOWN:
vel_y = 25
vel_x = 0
elif event.key == K_LEFT:
vel_x = -25
vel_y = 0
elif event.key == K_RIGHT:
vel_x = 25
vel_y = 0
我正在使用以下代码(在一个循环中)在 pygame window 周围移动一个正方形:
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_UP:
vel_y = -25
elif event.key == K_DOWN:
vel_y = 25
elif event.key == K_LEFT:
vel_x = - 25
elif event.key == K_RIGHT:
vel_x= 25
y += vel_y
x += vel_x
x 和 y 是正方形的位置。
这段代码在按下箭头键时不断地向我想要的方向移动方块。但是,我 运行 遇到了如果我向上或向下然后向左或向右按,它会沿对角线在屏幕上移动的问题。
我需要一个解决方案来阻止它在当前方向上移动并改变到新的方向。不能同时向两个方向移动。
当附加键被按下时,另一个vel_
仍然被设置为一个值。要解决此问题,您需要做的就是在设置新方向时将另一个速度设置为 0。
if event.key == K_UP:
vel_y = -25
vel_x = 0
elif event.key == K_DOWN:
vel_y = 25
vel_x = 0
elif event.key == K_LEFT:
vel_x = -25
vel_y = 0
elif event.key == K_RIGHT:
vel_x = 25
vel_y = 0