如何使平台产卵而不接触其他平台

所以我正在做一个像游戏一样的游戏,有平台在滚动,但是现在我的平台产卵是完全随机的。 我希望这些平台能够被分散开来,所以他们不会感动,但是没有太多的想法来实现它。 我正在考虑使用距离公式来检查,以确保它们是分开的,但我在想,当我创建这些对象时,我将不得不先检查之前的所有对象,看看它们是不是相互碰撞。 有没有人有任何想法如何有效地进行这项工作?

你可以保持简单。

方法:

  1. 随机生成平台,如果一个新生成的平台的位置是重叠的,只是不使用它,并随机在另一个位置。 它将工作,除非平台非常密集,他们不应该这样做。

  2. 另一种方法是在Y轴上使用插槽,而不使用相同的Y插槽。 例如,如果屏幕的高度是100个单位,平台的高度是5个单位,则将屏幕划分为20个离散的逻​​辑槽,并随机选取一个,并且从不select相同的两个逻辑槽。 这可以通过将空槽存储在池中来完成。

一般情况下,当你需要删除一个随机项目时,arrays的O(N)不是很快。 为了能够快速地从数组中删除项目,您可能需要洗牌数组,只从最后select项目。 在你的具体情况下,数组的大小应该< 1000所以它可能没有明显的影响。

你也可能只是想洗牌数组,然后按顺序在数组上迭代,而不是重复使用先前select的项。