清理道路
本课属于 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组中。
挑战
中等让开关移除所有箱子。
- 在
_on_switch_body_entered中,把Crate1那行替换为遍历crates组的for循环。 - 在循环中释放每个箱子。
按下“开始”,然后踩上开关:所有箱子都会消失,你可以从中穿过。然后点击“检查”。
亲手试试
extends Node2D
func _ready():
$Switch.body_entered.connect(_on_switch_body_entered)
func _on_switch_body_entered(body):
$Crate1.queue_free()
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
信号与碰撞中的所有课
自己练习: Godot 在线编辑器