2017-10-06 1 views
0

richtig zu durchlaufen. Also baue ich ein einfaches unendliches Run-Spiel für die Schule, und ich bin fest daran, die Hindernisse zu spawnen. Ich versuche jedes Hindernis Sprite zu überprüfen und ob es vom Bildschirm verschwunden ist (Hintergrund und Hindernisse bewegen sich von rechts nach links). Wenn es vom Bildschirm verschwunden ist, möchte ich das Sprite entfernen und ein anderes auf der rechten Seite des Bildschirms einrichten. Aber jedes Mal, wenn ein Hindernis von der linken Seite des Bildschirms verschwindet, beginnt eine unendliche Anzahl von Hindernissen zu spawnen. Ich bin neu bei Pygame und Python im Allgemeinen. Jede Hilfe würde sehr geschätzt werden. Danke im Voraus.Ich versuche, die Pygame-Sprite-Gruppe

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

Vorerst Ich habe nur ein Hindernis, das ich laichen zunächst

Antwort

0

cur_sprite.kill eine Funktion ist, also wenn Sie es () anrufen möchten, verwenden, wie cur_sprite.kill().

Das ist dein Problem. Die Hindernisse aus dem Bildschirm werden nicht aus ihren Sprite-Gruppen entfernt.

+0

Wow, vielen Dank. Funktioniert perfekt. Ziemlich blöder Fehler. –