Menu
CoddyTech

清理道路

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

要移除某一类的所有节点,可以遍历组并释放每个节点:

for crate in get_tree().get_nodes_in_group("crates"):
	crate.queue_free()

你不能释放列表本身。get_nodes_in_group("crates").queue_free()会因错误而停止游戏,因为列表不是节点。

右边有三个箱子挡住了去路。它们都在crates组中。

challenge icon

挑战

中等

让开关移除所有箱子。

  1. 在 _on_switch_body_entered 中,把 Crate1 那行替换为遍历 crates 组的 for 循环。
  2. 在循环中释放每个箱子。

按下“开始”,然后踩上开关:所有箱子都会消失,你可以从中穿过。然后点击“检查”。

亲手试试

extends Node2D

func _ready():
	$Switch.body_entered.connect(_on_switch_body_entered)

func _on_switch_body_entered(body):
	$Crate1.queue_free()
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

信号与碰撞中的所有课

自己练习: Godot 在线编辑器