Menu
CoddyTech

多个尖刺,一个函数

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

一个关卡中可以有很多个尖刺,它们的作用都相同。用循环遍历它们所在的组,并将它们全部连接到一个函数:

for spike in get_tree().get_nodes_in_group("spikes"):
	spike.body_entered.connect(_on_spike_body_entered)

循环的每一轮都会连接下一个尖刺的 body_entered。无论你碰到哪一排,都会运行同一个函数,并获取你的身体。

向组中添加第五排尖刺,无需编写新代码也能正常工作。这里的四排尖刺都属于 spikes 组。

challenge icon

挑战

中等

让每一排尖刺都能把你送回起点。

  1. 在 _ready() 中,用遍历分组 spikes 的 for 循环替换原来的那行 connect 代码。
  2. 在循环中,将每个节点的 body_entered 连接到 _on_spike_body_entered。

按下“开始”,然后走进任意尖刺中:你会回到起点。接着点击“检查”。

亲手试试

extends Node2D

func _ready():
	$Spikes1.body_entered.connect(_on_spike_body_entered)

func _on_spike_body_entered(body):
	body.position = Vector2(80, 280)

信号与碰撞中的所有课

自己练习: Godot 在线编辑器