0

在这段代码中,当我的角色与其中一个项目发生碰撞时,我有一个由“食物”组成的列表,它会自行删除,添加分数,并在列表中创建一个新食物。所以基本上屏幕上会弹出一种新食物。我有敌人在屏幕上飞来飞去并减去分数,他们也在一个列表中。我正在尝试编写我的程序,所以当我删除两个食物时,将使用“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()
4

1 回答 1

2

您在每次迭代开始时将计数设置为 0,因此它永远不会超过 1。您需要在循环之外创建计数。

count = 0
for i, food in enumerate(self.foods):
    ...
于 2012-12-05T01:57:36.247 回答