3 回答
TA贡献1993条经验 获得超5个赞
您必须创建一个ZombieList对象,您可以将Zombie对象附加到其中。
您可以添加一个类的对象向类Zombie:
class Zombie(object):
zombies = ZombieList()
def __init__(self):
self.attack = 3
self.speed = 5
self.health = 30
self.image = pygame.image.load("Assets/green zombie.png")
def render(self):
Zombie.zombies.list.append(self)
TA贡献1850条经验 获得超11个赞
您不能附加到类列表。您需要附加到类的实例。例如:
class ZombieList:
def __init__(self):
self.list = []
for zombie in self.list:
ds.blit(zombie.image, (1000, random.randint(10, 790)))
my_zombie_list = ZombieList() # create an instance
class Zombie(object):
def __init__(self):
self.attack = 3
self.speed = 5
self.health = 30
self.image = pygame.image.load("Assets/green zombie.png")
self.zombieList = []
def render(self):
my_zombie_list.list.append(self) # refer to the previously created instance
TA贡献1793条经验 获得超6个赞
没有属性list在ZombieList。只有在您创建了一个ZombieListthrough eg 之后,self.zombie_list = ZombieList()您才能通过 使用您的列表self.zombie_list.list。
尽管如此,我想这可能不是您想要的设计:我想您不希望ZombieList每个人都有一个Zombie. 相反,初始化Zombie对象的人也应该负责维护ZombieList实例。
您还会遇到其他问题。例如,在循环
self.list = []
for zombie in self.list:
ds.blit(zombie.image, (1000, random.randint(10, 790)))
永远不会有任何影响,因为self.list在执行该代码时始终为空(因为您已在上一行将其定义为空)。
添加回答
举报