如何使敌人在pygame中来回踱步?

时间:2016-05-29 19:42:08

标签: python pygame sprite move

我制作了一个精灵组并将其显示在屏幕上,但我不知道如何让它们全部移动?我想我理解如何将一个精灵移动为一个类,但我现在有一个完整的组。我想让他们在平台上来回踱步(如左右不断)。我知道如何使用一个精灵的动作,但不是一组精灵。

这就是我现在所拥有的:

class Platform(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.image.load('levoneplatform.png')
        self.rect = self.image.get_rect()

class Enemy(pygame.sprite.Sprite):

    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.image.load('enemy.png')
        self.rect = self.image.get_rect()

class LevOne():
    def __init__(self):

        self.background_image = pygame.image.load('night.png').convert_alpha()


        platforms_one = [ (200,300),
                        (50,500),
                        (550,650),
                        (300,200),
                        (120,100)
                   ]
        for k,v in platforms_one:
            platform = Platform()
            enemy = Enemy()
            platform.rect.x = k
            enemy.rect.x = k
            platform.rect.y = v
            enemy.rect.y = v - 44
            platform_list.add(platform)
            enemy_list.add(enemy)

    def update(self):
         screen.blit(self.background_image, [0, 0])

screen = pygame.display.set_mode((800,600))
enemy_list = pygame.sprite.Group()
platform_list = pygame.sprite.Group()

其余的基本上就像我的状态变化和更新。我不知道如何移动整个精灵组。我知道如何在一个列表中移动一个精灵,但不是一堆精灵。

谢谢!

1 个答案:

答案 0 :(得分:0)

您需要为Sprite定义update方法以使它们四处移动。然后,您可以调用enemy_list.update()以对组中的每个精灵进行更新。

供参考检查the docs

快乐编码