在游戏中,当敌人加载时,“敌人”会被创建为类中的对象。
当屏幕刷新时,每个人都需要更新他们的X和Y位置。但由于存在多个敌人,我需要创建一长段代码,告诉每个敌人对象更新。
例如:
enemy1 = Enemy()
enemy2 = Enemy()
enemy3 = Enemy()
...
enemy1.update()
enemy2.update()
enemy3.update()
...
我需要一种在需要时创建这些对象的方法,而不需要为每一个创建一个变量,并且一个函数可以在屏幕刷新时更新敌人类中的所有对象。
答案 0 :(得分:0)
你可以这样做:
class Enemy(object):
def __init__(self):
pass
def update(self):
pass # we will call this function during updates.
enemies = []
for iter in range(10):
enemies.append(Enemy()) # creating 10 Enemies and appending it into list
for enemy in enemies:
enemy.update() #updating every enemy in the list
答案相当容易。在创建敌人期间将其附加到列表中。之后,如果您需要计算其x / y位置,只需迭代该列表即可。但是如果你不再需要,请记住列表中的remove
或del
敌人。
CNC中 我也会推荐你这本书:
迈克尔道森。 这是一本非常好的书。写给人们想学习如何在python中创建游戏。你应该阅读它。绝对初学者的Python编程
答案 1 :(得分:0)
Pygame为这种情况提供原生支持。
class Enemy(pygame.sprite.Sprite):
"do useful stuff"
enemies = pygame.sprtie.Group()
for _ in xrange(10): #initialize enemy list
Enemy(enemies)
enemies.update() #update all the enemies
enemies.update(5, 6) #call the update method on each enemy with the args 5 and 6