您如何在二维戈多场景中获得已知位置周围的随机位置?

How can you get a random posistion around a known posistion in a 2d godot scene?

我正在制作一款类似于小行星的游戏,我想在玩家周围放置一颗小行星,但并不总是在同一个地方,也不会太远或太近。

这是我当前的代码(行星是另一颗具有刚体精灵和碰撞形状的小行星):

func create_asteroid():
   var planet_instance = asteroid.instance()
   asteroid_instance.position = self.position
   get_tree().get_root().call_deferred("add_child", asteroid_instance)

您可以随意选择一个角度:

var angle := rand_range(0, TAU)

同理,距离:

var distance := rand_range(min_distance, max_distance)

然后找出它来自 self.position 的地方。我们可以使用 polar2cartesian

asteroid_instance.position = self.position + polar2cartesian(distance, angle)

顺便说一句,记得在游戏开始时调用randomize,为随机数生成器设置种子。 如果您需要对此进行更多控制(例如能够输入种子),请使用 RandomNumberGenerator class。