0

このコードでは、キャラクターがこれらのアイテムのいずれかと衝突すると、「食べ物」で構成されるリストがあり、それ自体が削除され、スコアが追加され、リストに新しい食べ物が作成されます。つまり、基本的に新しい食べ物が画面に表示されます。画面を飛び回ってスコアを引く敵がいて、それらもリストにあります。プログラムをコーディングしようとしているので、2 つの食品を削除すると、「カウント」を使用して新しい敵がリストに追加されます。しかし、何らかの理由で、それは何もしません。誰かが私を正しい方向に向けることができますか?

    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 に答える