【发布时间】:2020-02-28 21:18:38
【问题描述】:
我正在创建一个小程序,它使用围绕彼此旋转的线段创建类似这样的图像模式: image from Engare Steam store page for reference
如何告诉 Godot 创建 Polygon2D 场景的实例,我将其用作线段,其原点位于 Polygon2D 场景中作为子节点存在的 Position2D 节点上?这是我的代码示例:
const SHAPE_MASTER = preload("res://SpinningBar.tscn")
...
func bar_Maker(bar_num, parent_node):
for i in range(bar_num):
var GrabbedInstance = SHAPE_MASTER.instance()
parent_node.add_child(GrabbedInstance)
bar_Maker(bar_num - 1, $Polygon2D/RotPoint)
...
func _physics_process(delta):
...
if Input.is_action_just_pressed("Switch Item"): # from an older version of the program, just bound to ctrl
bar_Maker(segment_count, BarParent)
bar_num 是要实例化的柱数,在别处设置(范围 1-6)。
主场景中的 parent_node 只是一个名为 BarParent 的 Node2D。
我作为 GrabbedInstance 实例化的 SpinningBar.tscn 在对象原点的段的另一端有一个名为“RotPoint”的 Position2D 节点。这就是我希望连续段旋转的点(并且还把粒子发射器放在这里跟踪线,但一旦第一个得到回答,这就是一个微不足道的问题)。
按原样运行并创建超过 1 个线段会返回“尝试在空实例的基础‘空实例’中调用函数‘add_child’。”显然,我错误地添加了第二个(及以后的)段,所以我知道这与我如何为 1+ 个节点深度的段执行递归/选择新父项有关。
【问题讨论】:
标签: godot