游戏循环事件听力

时间:2015-12-26 06:47:54

标签: python pygame keyboard-events

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

运动
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。

发生了什么事?如何更正它以获得预期结果?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

[发布作为答案,以便可以正确完成此问题]

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