3 回答

TA貢獻1993條經(jīng)驗 獲得超6個贊
您必須創(chuàng)建一個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條經(jīng)驗 獲得超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條經(jīng)驗 獲得超6個贊
沒有屬性list在ZombieList。只有在您創(chuàng)建了一個ZombieListthrough eg 之后,self.zombie_list = ZombieList()您才能通過 使用您的列表self.zombie_list.list。
盡管如此,我想這可能不是您想要的設計:我想您不希望ZombieList每個人都有一個Zombie. 相反,初始化Zombie對象的人也應該負責維護ZombieList實例。
您還會遇到其他問題。例如,在循環(huán)
self.list = []
for zombie in self.list:
ds.blit(zombie.image, (1000, random.randint(10, 790)))
永遠不會有任何影響,因為self.list在執(zhí)行該代碼時始終為空(因為您已在上一行將其定義為空)。
添加回答
舉報