试图正确迭代pygame精灵组

时间:2017-10-06 06:31:41

标签: python pygame 2d 2d-games

所以我正在为学校建立一个简单的无限运行游戏,我不得不试图产生障碍。我试图检查每个障碍精灵,如果它已经离开屏幕(背景和障碍物从右向左移动)。如果它已经离开屏幕,我想删除精灵并在屏幕右侧设置另一个精灵。但是每当障碍物离开屏幕的左侧时,无数的障碍物就会开始产生。我是pygame和python的新手。任何帮助将不胜感激。提前谢谢。

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

目前,我只有一个我最初产生的障碍

1 个答案:

答案 0 :(得分:1)

cur_sprite.kill是一个功能,因此当您想要使用()时,请使用cur_sprite.kill()

那是你的问题。屏幕外的障碍物不会从其精灵组中删除。