pygame类/对象管理



在Python编程中相当新。

我现在需要将这些精灵添加到组中,以便我可以更新,问题是我不明白如何提取这些精灵的引用。 在下面的示例程序中,您会注意到机器人的实例化创建了一个盒子,而盒子的实例化创建了一个错误。 我的问题是:1. 如何将埋藏在其他物体中的对象添加到精灵组中。2.盒子物体将随着机器人移动,但在未来的某个时候,盒子将被移交给另一个机器人,第一个机器人可能会消失。 鉴于盒子是由第一个机器人创建的,我该如何管理它。

class Robot(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.numBox = random.randint(1,5)
        for box in self.numBox:
            box = Box():
class Box(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        bug = Bug()
class Bug(pygame.sprite.Sprite):
    ...
def main():
    robot = Robot()
    groups = pygame.sprite.Group()
    while TRUE:
        groups.update()

假设所有类都继承pygame.sprite.Sprite你可以这样做,以便所有类都采用它们自己添加到的参数group。可以将任意数量的组传递给超类pygame.sprite.Spriteinit方法,该方法会将对象添加到组中。然后,只需将此参数传递给所有其他类即可。例如:

class Robot(pygame.sprite.Sprite):
    def __init__(self, group):
        super(Robot, self).__init__(group)
        self.num_box = random.randint(1,5)
        for box in self.numBox:
            box = Box(group):
class Box(pygame.sprite.Sprite):
    def __init__(self, group):
        super(Box, self).__init__(group)
        bug = Bug(group)
class Bug(pygame.sprite.Sprite):
    def __init__(self, group):
        super(Bug, self).__init__(group)
        ...
def main():
    group = pygame.sprite.Group()
    robot = Robot(group)
    while True:
        group.update()

最新更新