如何通过 gdscript 在移动墙(StaticBody2D)上连接二维飞镖(Kinematicbody2D)
How to Pinjoint2D darts(Kinematicbody2D) on moving wall(StaticBody2D) via gdscript
我有一个射击飞镖 (KinematicBody2D) 需要粘在移动的墙上 (staticbody2D)。
我想让飞镖贴在墙上,根据墙的移动改变位置(目前我的墙是通过更新位置移动的)。
然而,飞镖并没有完全跟随墙的移动路径。
我最终添加了 pinJoint2D,但是通过 gdscript 设置节点只会给我一个错误
Invalid set index 'node_b' (on base: 'PinJoint2D') with value of type 'StaticBody2D (StaticBody2DWall.gd)'.
我在 dart 节点中设置 pinjoint2d 的代码如下:
var slide_count = get_slide_count()
if slide_count:
var collision = get_slide_collision(slide_count - 1)
var collider = collision.collider
lif collider.is_in_group("wall"):
$PinJoint2D.node_b = collider
任何人都请帮忙。如果有更好的做法,请告诉我。
node_b成员是节点路径,不是节点。请尝试以下操作:
$PinJoint2D.node_b = collider.get_path()
我有一个射击飞镖 (KinematicBody2D) 需要粘在移动的墙上 (staticbody2D)。 我想让飞镖贴在墙上,根据墙的移动改变位置(目前我的墙是通过更新位置移动的)。
然而,飞镖并没有完全跟随墙的移动路径。
我最终添加了 pinJoint2D,但是通过 gdscript 设置节点只会给我一个错误
Invalid set index 'node_b' (on base: 'PinJoint2D') with value of type 'StaticBody2D (StaticBody2DWall.gd)'.
我在 dart 节点中设置 pinjoint2d 的代码如下:
var slide_count = get_slide_count()
if slide_count:
var collision = get_slide_collision(slide_count - 1)
var collider = collision.collider
lif collider.is_in_group("wall"):
$PinJoint2D.node_b = collider
任何人都请帮忙。如果有更好的做法,请告诉我。
node_b成员是节点路径,不是节点。请尝试以下操作:
$PinJoint2D.node_b = collider.get_path()