【问题标题】:How can you get a random posistion around a known posistion in a 2d godot scene?如何在 2d godot 场景中围绕已知位置获得随机位置?
【发布时间】:2021-12-26 05:39:44
【问题描述】:

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

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

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

【问题讨论】:

    标签: random 2d area godot


    【解决方案1】:

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

    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 类。

    【讨论】:

    • 这行得通,但每次我运行时都是一样的,有没有简单的解决方法?
    • @T-Rex randomize.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-31
    • 2014-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多