Menu
CoddyTech

删除一个节点

本课属于 Coddy Godot 学习旅程的“信号与碰撞”单元。第 15 课,共 27 课。

你捡到的硬币应该消失,而不是被隐藏,这样就不会再有东西碰到它。queue_free() 会从游戏中移除一个节点及其所有子节点:

func _on_body_entered(body):
	queue_free()

单独调用时,queue_free() 会移除脚本所在的节点,这里指的是硬币。

名称中有“queue”,是因为 Godot 会在当前帧结束时释放节点,而不是立即释放。在此之前,其他代码仍可能会使用该节点。再过几课,你就会知道这为什么很重要。

challenge icon

挑战

简单

走到金币上时,让金币消失。

  1. 在 _on_body_entered 中替换 pass。
  2. 使用 queue_free() 释放金币。

按“开始”,然后走到金币上:金币消失了。接着按“检查”。

亲手试试

extends Area2D

func _ready():
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	pass

信号与碰撞中的所有课

自己练习: Godot 在线编辑器