所以我正在为学校建立一个简单的无限运行游戏,我不得不试图产生障碍。我试图检查每个障碍精灵,如果它已经离开屏幕(背景和障碍物从右向左移动)。如果它已经离开屏幕,我想删除精灵并在屏幕右侧设置另一个精灵。但是每当障碍物离开屏幕的左侧时,无数的障碍物就会开始产生。我是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]))
目前,我只有一个我最初产生的障碍
答案 0 :(得分:1)
cur_sprite.kill
是一个功能,因此当您想要使用()
时,请使用cur_sprite.kill()
。
那是你的问题。屏幕外的障碍物不会从其精灵组中删除。