Pygame-在pygame窗口周围移动正方形,但在更改方向时无法停止当前移动,导致正方形沿对角线移动

时间:2019-02-25 16:34:26

标签: python python-3.x pygame python-3.7

我正在使用以下代码(处于循环中)在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是正方形的位置。

当按下箭头键时,此代码将正方形连续朝我想要的方向移动。但是,我遇到了这样的问题:如果我先按向上或向下然后向左或向右移动,它会在屏幕上沿对角线移动。

我需要一个解决方案以阻止其沿当前方向移动并更改为新方向。不能同时在两个方向上移动。

1 个答案:

答案 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