如何制作在pygame中上下移动的动画?

时间:2020-01-16 16:38:07

标签: python pygame

我正在尝试使小丑的动画稍微上下移动,以模拟上下跳跃。

clock = pygame.time.Clock()
def first_bozo(gameWindow):
    gameWindow.blit(bozo, (50, clown_move))


    while True:
        clock.tick(80)
        clown_move = clown_move - 1

        gameWindow.fill(LIGHTBLUE)
        first_text()
        gameWindow.blit(big_top, (250, 250))
        pygame.draw.rect(gameWindow, DARKBLUE, [70, 170, 360, 70])
        button_text()
        pygame.display.update()

        if clown_move == 305:
            clown_move = clown_move + 1

            gameWindow.fill(LIGHTBLUE)
            first_text()
            gameWindow.blit(big_top, (250, 250))
            pygame.draw.rect(gameWindow, DARKBLUE, [70, 170, 360, 70])
            button_text()
            pygame.display.update()

        if clown_move == 300:
            clown_move = clown_move - 1
            gameWindow.fill(LIGHTBLUE)
            first_text()
            gameWindow.blit(big_top, (250, 250))
            pygame.draw.rect(gameWindow, DARKBLUE, [70, 170, 360, 70])
            button_text()
            pygame.display.update()

def intro_screen(): ### opening screen
    gameWindow.fill(LIGHTBLUE)
    first_text()
    gameWindow.blit(big_top, (250, 250))
    first_bozo(300)
    pygame.draw.rect(gameWindow, DARKBLUE, [70, 170, 360, 70]) 
    button_text()

  gameWindow.blit(bozo, (50, clown_move))
AttributeError: 'int' object has no attribute 'blit'

我该如何解决?

1 个答案:

答案 0 :(得分:2)

您必须确保确实要调用调用first_bozo()的代码,但这听起来像是您要传递一个int而不是游戏窗口对象。

编辑:正如我所说,在您粘贴的代码中,您正在将一个int传递给first_bozo。该整数300成为first_bozo的gameWindow参数的值,当然,正如错误所言,300没有blit函数。将300替换为gameWindow,您至少应该能够取得一些进步。