在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.Sprite
的init
方法,该方法会将对象添加到组中。然后,只需将此参数传递给所有其他类即可。例如:
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()