区域检测物体
本课属于 Coddy Godot 学习旅程的“信号与碰撞”单元。第 1 课,共 27 课。
Area2D 是一个能检测有哪些物体进入其中的区域。
Area2D 需要一个 CollisionShape2D 子节点。这个形状决定了区域的大小,这里是绿色方框。物体可以穿过区域,不会撞上它。
物体进入时,区域会发送一个名为 信号 的 body_entered 信号。这个区域的脚本会监听它:
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
print("Welcome to the zone!")每当物体进入这个形状时,_on_body_entered 就会运行。下一课会解释 connect 这一行。机器人是一个物体,但它沿着 y = 250 移动,在区域下方。
挑战
简单把区域放在机器人的路径上。
- 机器人沿着
y = 250行走。在_ready()中,将区域的position.y设为250。 - 保持
connect这一行不变。
按下 “开始”:机器人走进来时,控制台会显示 Welcome to the zone!。然后按下 “检查”。
亲手试试
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
print("Welcome to the zone!")
信号与碰撞中的所有课
自己练习: Godot 在线编辑器