2017-10-06 13 views
0

私は学校のための単純な無限ランゲームを構築しており、障害物を育てようとしています。私は各障害スプライトをチェックしようとしていて、スクリーンから外れていれば(背景と障害物は右から左に移動します)。画面が消えた場合は、スプライトを削除して、画面の右側に別のスプライトを設定します。しかし、障害物が画面の左側から出るたびに、無限の量の障害物が発生し始めます。私は一般的にpygameとpythonには新しいです。どんな助けでも大歓迎です。前もって感謝します。今のpygameスプライトグループを適切に反復しようとしています

def obstacle_off_screen(self): 
    numDeleted = 0 
    for cur_sprite in self.all_objects_list: 
     print("first loop") 
     if cur_sprite.rect.x < 0: 
      print("second") 
      cur_sprite.kill 
      numDeleted += 1 
    while numDeleted != 0: 
     print("third") 
     self.add_obstacle() 
     numDeleted -= 1 

def add_obstacle(self): 
    #add parameters 
    if self.get_Speed() == 15: 
     x = 1000 
     y = 400 
    elif self.get_Speed() == 20: 
     x = 1000 
     y = 400 
    elif self.get_Speed() == 25: 
     x = 1000 
     y = 400 
    elif self.get_Speed() == 30: 
     x = 1000 
     y = 400 

    self.all_objects_list.add(Obstacle('src/paw.gif', [x, y])) 

、私は私が最初に

答えて

0

cur_sprite.killを生む一つの障害物は、関数でてきたので、あなたはそれがcur_sprite.kill()のように、()を使う呼び出したいとき。

これは問題です。画面外の障害物はスプライトグループから削除されません。

+0

うわー、ありがとう。完璧に動作します。かなり愚かな間違い。 –

関連する問題