我正在尝试创建这个游戏,它在启动时会在屏幕上添加 50 个精灵。我在这个精灵的__init__
功能中有以下内容:
if self.overlapping_sprites:
for sprite in self.overlapping_sprites:
self.game.make_obstacles(1, 1400, self.game.speed)
self.die()
这几乎可以检测是否有任何重叠的精灵,并且对于每个精灵,它会创建一个新的精灵并删除有问题的精灵。实现这段代码确实很神奇,但它仍然不完美。加载时肯定还有一些重叠的精灵。哦,我应该提到我正在根据给定的长度随机创建这些精灵。
作为参考,这是make_obstacles()
功能:
def make_obstacles(self, num, length, dx):
for i in range(num):
x = random.randrange(700, length)
y = random.randrange(10, games.screen.height - 10)
size = random.choice([Obstacle.obstacle_1,Obstacle.obstacle_3])
new_obstacle = Obstacle(game = self, x = x, y = y, size = size, dx = dx)
games.screen.add(new_obstacle)
还有另一种方法可以让我尝试在这里实现我的目标吗?我还想弄清楚为什么会在概念层面上发生这种情况,以加深我的理解,因此我们将不胜感激。