pygame计数

时间:2012-12-05 01:47:10

标签: python pygame

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

1 个答案:

答案 0 :(得分:2)

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

count = 0
for i, food in enumerate(self.foods):
    ...