游戏循环事件监听

Game Loop Event Listening

我在蛇类游戏中有这个运动循环

运动
while not gameExit:
    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:
        #Arrow keys move snake head.
            if event.key == pygame.K_LEFT:
                lead_y_change=0
                lead_x_change -= 10
            if event.key == pygame.K_RIGHT:
                lead_y_change=0
                lead_x_change += 10
            if event.key == pygame.K_UP:
                lead_x_change=0
                lead_y_change -= 10
            if event.key == pygame.K_DOWN:
                lead_x_change=0
                lead_y_change += 10

        lead_x += lead_x_change
        lead_y += lead_y_change
    
        gameDisplay.fill(white)
        pygame.draw.rect(gameDisplay, black, [lead_x, lead_y, 10, 10])
        pygame.display.update()

应该发生什么:

当我按下任何箭头键时,循环应该 运行 一遍又一遍地更新动作,黑色小矩形应该飞出屏幕,再也不会出现。

会发生什么:

矩形在按下键时移动 10,然后在按下键时移动 10。然后 20 键向下和 20 键向上等等。 . .它似乎也对鼠标运动做出反应。我不知道为什么。我正在使用 python 3.4 和 pygame 1.9.

这是怎么回事?我该如何更正它以获得预期的结果?

感谢您的帮助!

[发帖作为答案,这样这个问题才能正确完成]

看起来以 lead_x += lead_x_change 开头的行需要缩进一级。现在它只会在事件发生时转到这些行。