在上述代码中,我们首先使用get_parent()获取当前节点的父节点,然后使用get_index() - 1获取当前节点在父节点中的索引减一,即前一行的索引。接下来,我们通过get_child()方法获取前一行节点,并使用is关键字判断该节点是否为标签节点。如果是标签节点,我们可以通过修改previous_line.text来编辑前一行的文本内容。 保存...
func _physics_process(delta): if get_parent().isShooting: move_and_collide(velocity * delta) get_parent():父节点,也就是我们的武器。它有个变量running,默认可以是true或false,根本武器的实际情况给予初始值。后面我们会介绍到两种情况。 Step 6 处理离开屏幕信号 当子弹离开屏幕后,我们需要将它销毁,这就...
使用节点的get_node()方法:在需要访问变量的脚本中,可以使用get_node()方法获取其他脚本所在的节点,并通过该节点的变量或方法来访问所需的变量。 使用节点的get_parent()方法:如果两个脚本位于同一个父节点下,可以使用get_parent()方法获取它们的共同父节点,并通过该父节点的变量或方法来访问所需的变量。 使用...
- `get_parent( -> Node`:返回当前节点的父节点。 - `get_child(index: int) -> Node`:返回指定索引处的子节点。 - `get_node(path: NodePath) -> Node`:通过节点路径获取指定节点。 2.输入处理方法: - `is_action_pressed(action: String) -> bool`:检查指定动作(键盘、鼠标或手柄)是否按下。
died.emit(get_parent()) return hp 当然,如此一来我们就无法直接从一个节点的类型上得到它关于这一能力的信息,因为现在和接受伤害相关的能力有关的属性和方法都在这个单独的子节点上。如果使用这种模式,为了检测一个节点“是否可以接受伤害”,我们需要做的是检查它身上是否有某个节点。
onready var nav_2d = get_parent().find_node('Navigation2D') onready var target = get_parent().find_node('Player') var speed = 40.0 var path = PoolVector2Array() Nav_2d和target都是节点的引用,关于节点的引用依据你的节点结构,所以,不一定都如上代码,可以自行判断。
get_parent().add_child(bullet_instance) 1. 2. 这种做法貌似是没问题的,但别忘了,Godot的每一个场景都是可以单独运行的,尤其是在开发测试时,如果你想单独测试Player场景, 由于get_parent()找不到父节点而必然导致崩溃。还有就是在开发过程中如果节点树的结构发生变化,你无法保证Player的父节点永远适合做Bullet...
get_filename() 从文件实例化场景时,其最顶层节点包含加载它的文件名。 MultiplayerAPImultiplayer Getterget_multiplayer() 与此节点关联的MultiplayerAPI实例。是custom_multiplayer或默认的SceneTree其中一个(如果在场景树的当中的话)。 Stringname set_name(value) ...
func_ready():Global.player=get_parent()(省略后面的代码...) 然后在 hud.gd 脚本中添加方法 func_ready()->void:awaitget_tree().process_frame # 获取到新的物品,添加到物品栏显示 Aspect.around(Global.player.items.newly_added_data,func(id:String,data:Dictionary):inventory.add_item(data)) ...
大意是,手枪发射子弹并添加为自己的子节点会导致子弹跟着手枪运动;但是把子弹添加为手枪父节点的子节点,又会导致单独测试手枪场景时,手枪发射子弹调用get_parent()会报错所以官方建议,手枪想要发射子弹时,发出一个信号,主场景会接受信号并生成子弹这样不仅子弹不会跟着手枪运动,而且看起来会简洁一些...