2012-12-05 5 views
0

이 코드에서 나는 캐릭터가이 아이템들 중 하나와 충돌 할 때 "음식"으로 구성된 목록을 가지고 있으며, 자신을 삭제하고 점수를 추가하며 목록에 새로운 음식을 만듭니다. 그래서 본질적으로 새로운 음식이 화면에 나타납니다. 나는 화면 주위를 날아 점수를 뺀 적을 가지고있다. 그들은 또한 목록에있다. 내 프로그램을 코드화하려고하는데 두 개의 음식을 삭제하면 새로운 적을 "개수"를 사용하여 목록에 추가합니다. 그러나 웬일인지, 그것은 아무것도하지 않는다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까?파이 게임 카운팅

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() 

답변

2

당신은 당신은 루프의 외부에서 생성 될 수있는 수를 필요 1. 이상 증가하지 않도록 각 반복의 시작 부분에서 0으로 카운트를 설정합니다.

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

루프 외부에 넣은 경우에도 여전히 아무 것도하지 않습니다./ –

+0

그러면 나머지 코드에 문제가 있습니다. self.triangles.append 호출이 현재있는 곳에 print 문을 넣고 호출되는지보십시오. – timc

+0

append가 호출됩니다. 새로운 음식이 화면에 나타납니다. 어쩌면 나는 카운트없이 그냥 할거야. –