Menu
CoddyTech

区域检测物体

本课属于 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 移动,在区域下方。

challenge icon

挑战

简单

把区域放在机器人的路径上。

  1. 机器人沿着 y = 250 行走。在 _ready() 中,将区域的 position.y 设为 250。
  2. 保持 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 在线编辑器