2017-10-06 11 views
0

Donc, je construis un simple jeu de course infini pour l'école et je suis bloqué pour essayer de faire apparaître les obstacles. J'essaie de vérifier chaque sprite d'obstacle et s'il est sorti de l'écran (le fond et les obstacles bougent de droite à gauche). Si elle a disparu de l'écran, je veux supprimer l'image-objet et en créer une autre sur le côté droit de l'écran. Mais à chaque fois qu'un obstacle disparaît du côté gauche de l'écran, une quantité infinie d'obstacles commence à apparaître. Je suis nouveau à pygame et python en général. Toute aide serait grandement appréciée. Merci d'avance.Essayer de parcourir correctement le groupe de sprites de 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])) 

Pour l'instant, je n'ai qu'un seul obstacle que je Spawn initialement

Répondre

0

cur_sprite.kill est une fonction, donc quand vous voulez l'appeler utilise (), comme cur_sprite.kill().

C'est votre problème. Les obstacles hors écran ne sont pas supprimés de leurs groupes de sprites.

+0

Wow, merci beaucoup. Fonctionne parfaitement. Erreur assez stupide. –