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

问题描述 投票:-2回答:1

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

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()

它说'gameWindow.blit(bozo,(50,clown_move))AttributeError:'int'对象没有属性'blit''

我该如何解决?

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()
python pygame
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.