Python 为什么我使用pygame.key.get_pressed()时角色只向左移动?

Python 为什么我使用pygame.key.get_pressed()时角色只向左移动?,python,pygame,python-idle,Python,Pygame,Python Idle,我是Python新手,但我决定尝试在Pygame中制作一个格斗游戏。 我的角色将仅在强制更新时向左移动 我试过: 按下键 如果event.key==pygame.K\u d: 钥匙 如果event.key==pygame.K\u d或event.key==pygame.K\u a: x_变化=0 它在一定程度上起作用。当你需要突然改变方向,但却无法改变方向时,这很烦人 我还用AND更改了OR,因此当两个方向都抬起时,OR将停止,但这会阻止从两个方向移动 这样我就可以移动,而不是因为测试原因而

我是Python新手,但我决定尝试在Pygame中制作一个格斗游戏。 我的角色将仅在强制更新时向左移动

我试过:

按下键

如果event.key==pygame.K\u d:
钥匙

如果event.key==pygame.K\u d或event.key==pygame.K\u a:
x_变化=0
它在一定程度上起作用。当你需要突然改变方向,但却无法改变方向时,这很烦人

我还用AND更改了OR,因此当两个方向都抬起时,OR将停止,但这会阻止从两个方向移动

这样我就可以移动,而不是因为测试原因而战斗

fighting = False

while not fighting:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            fighting - False

        keys = pygame.key.get_pressed()

        if keys[pygame.K_a]:
            x_change1 = -5

        if keys[pygame.K_d]:
            x_change1 = 5

        if not keys[pygame.K_a] and keys[pygame.K_d]:
            x_change1 = 0 

        x1 += x_change1


    gameDisplay.fill(white)
    fighter1(x1,y1)
    pygame.display.update()
    clock.tick(28)
我的家伙只在我强制更新时向左移动X像素,例如再次按A(左)提起A或将鼠标移到窗口上。D(右)注册但不移动。按下A键后,即使按键向上,它也不会停止运行。

我想解决这个问题,这样我就可以更轻松地添加跳跃、攻击和玩家2。

这里缺少not操作符:

if not keys[pygame.K_a] and keys[pygame.K_d]:
    x_change1 = 0 
添加如下内容:

if not keys[pygame.K_a] and not keys[pygame.K_d]:
    x_change1 = 0 

谢谢不知道和不知道能不能一起走上一条路。我通过将x1+=x_change1向后移动1行来解决鼠标问题。