您如何在二维戈多场景中获得已知位置周围的随机位置?
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。
我正在制作一款类似于小行星的游戏,我想在玩家周围放置一颗小行星,但并不总是在同一个地方,也不会太远或太近。
这是我当前的代码(行星是另一颗具有刚体精灵和碰撞形状的小行星):
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。