组中的每个节点
本课属于 Coddy Godot 学习旅程的“信号与碰撞”单元。第 13 课,共 27 课。
get_tree().get_nodes_in_group("lamps")会以列表的形式返回组中的所有节点。用 for 遍历这个列表:
for lamp in get_tree().get_nodes_in_group("lamps"):
lamp.visible = truefor 下面的语句会为每个节点运行一次。每次运行时,lamp 都是下一个节点。5 盏灯就会循环 5 次。
get_tree() 是整个游戏的场景树,因此无论灯位于场景中的哪个位置,都能找到它们。把第 6 盏灯加入这个组后,这段代码也会点亮它。
挑战
中等让 E 打开所有灯。
- 将
$Lamp1.visible = true替换为遍历get_tree().get_nodes_in_group("lamps")的for循环。 - 在循环中显示每盏灯。
点击“运行”并按 E:五盏灯都会亮起。然后点击“检查”。
亲手试试
extends Node2D
func _process(delta):
if Input.is_action_just_pressed("action"):
$Lamp1.visible = true
信号与碰撞中的所有课
自己练习: Godot 在线编辑器