在这段代码中,当我的角色与其中一个项目发生碰撞时,我有一个由“食物”组成的列表,它会删除自己,添加分数,并在列表中创建新的食物。所以基本上一个新的食物弹出屏幕。我有敌人在屏幕上飞行并减去分数,他们也在列表中。我正在尝试编写我的程序,所以当我删除两个食物时,一个新的敌人将使用“count”添加到列表中。但由于某种原因,它什么也没做。有人能指出我正确的方向吗?
def update(self) :
self.score = self.player.update(self.score)
for triangle in self.triangles:
triangle.update(self.screen.get_rect())
#self.ball.update(self.screen.get_rect())
if self.player.rect.colliderect(triangle.rect):
self.score -= 2
for i, food in enumerate(self.foods):
count = 0
if self.player.rect.colliderect(food.rect):
self.score += 100
count += 1
del self.foods[i]
self.foods.append(Food(random.randint(0, 640), random.randint(0, 448)))
if count%2 == 0:
self.triangles.append(Ball(random.randint(0, 640), random.randint(0, 448)))
if self.score < -1:
pygame.mixer.music.stop()
答案 0 :(得分:2)
您在每次迭代开始时将计数设置为0,因此它永远不会超过1.您需要在循环之外创建计数。
count = 0
for i, food in enumerate(self.foods):
...