Pygame在Pygame窗口周围移动一个正方形,但在改变方向时不能停止当前的移动,导致正方形沿对角线移动

2024-06-02 06:05:37 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我需要一个解决方案来阻止它朝着当前的方向移动并转向新的方向。不能同时向两个方向移动


Tags: key代码ineventforgetiftype
1条回答
网友
1楼 · 发布于 2024-06-02 06:05:37

当按下附加键时,另一个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

相关问题 更多 >