我开始用python编写代码,然后使用pyzero制作一个简单的游戏。游戏结束后,我想删除某些类型类的所有现有实例,以允许游戏重新开始。我有该类所有实例的列表,但是使用remove(self)似乎会导致我无法解决的逻辑问题。
class Ball(Actor):
ball_list = []
def __init__(self, actor):
Actor.initiate_actor(self,"ball")
Ball.ball_list.append(self)
self.alive = True
def kill(self):
if self.alive:
self.alive = False
Ball.ball_list.remove(self)
def new_game():
global game_over, score
for actor in Ball.ball_list:
actor.kill()
score = 0
game_over = False
def draw():
global game_over
if game_over:
screen.clear()
screen.draw.text("Game Over", center = (WIDTH/2, HEIGHT/2), color = 'white')
else:
screen.clear()
backdrop.draw()
for actor in Ball.ball_list:
if actor.alive:
actor.draw()