生成散点数算法

时间:2016-05-26 03:47:04

标签: swift math sprite-kit logic point

我正在制作一个分散x分数的游戏。所有点的半径恒定为w

要点必须遵守以下规则:

  • 积分可能与其他积分不重叠
  • 点必须分开,以便每个点距离任何其他点至少DISTANCE

请列出一个有效的算法来执行此操作吗?

我也在Swift Sprite-Kit中制作这个游戏。因此,如果你知道一些Sprite-Kit,你可以在你的答案中实现它,否则如果你不知道Swift或Sprite-Kit,你可以用文字解释。

1 个答案:

答案 0 :(得分:1)

你的两个约束是等价的。这意味着任意两点之间的距离必须至少为max(w, DISTANCE)

最简单的方法是生成随机点并检查与先前点的最小距离。如果未满足约束,则只生成一个新点。您可以使用简单的网格加快距离检查(在网格单元格中放置点,然后只检查可能包含重叠点的单元格)。