多个尖刺,一个函数
本课属于 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 组。
挑战
中等让每一排尖刺都能把你送回起点。
- 在
_ready()中,用遍历分组spikes的for循环替换原来的那行connect代码。 - 在循环中,将每个节点的
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 在线编辑器