我正在使用以下代码(处于循环中)在pygame窗口周围移动正方形:
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是正方形的位置。
当按下箭头键时,此代码将正方形连续朝我想要的方向移动。但是,我遇到了这样的问题:如果我先按向上或向下然后向左或向右移动,它会在屏幕上沿对角线移动。
我需要一个解决方案以阻止其沿当前方向移动并更改为新方向。不能同时在两个方向上移动。
答案 0 :(得分:3)
当按下附加键时,另一个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