2017-10-06 109 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

哇,非常感谢。完美的作品。非常愚蠢的错误。 –