Menu
CoddyTech

区域相遇

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

Godot 的节点内置了信号。你会经常用到 Area2D 的 4 个信号:

  • body_entered 和 body_exited:一个物理体进入或离开了。物理体是实心的物体,例如 CharacterBody2D 和 StaticBody2D。
  • area_entered 和 area_exited:另一个区域进入或离开了。

一个区域不会为另一个区域发送 body_entered 信号。下落的星星是区域,所以篮子需要使用 area_entered:

func _ready():
	area_entered.connect(_on_star_caught)

这个函数会接收进入的区域,所以需要一个值作为参数,例如 _on_body_entered(body)。你可以随意命名这个参数。

challenge icon

挑战

简单

让篮子检测到落下的星星。

  1. 星星是区域,不是物体。在 _ready() 中,连接 area_entered,而不是 body_entered。
  2. 保留 _on_star_caught 作为函数。

按“开始”:控制台会显示两次 Caught a star!,每颗星星显示一次。然后按“检查”。

亲手试试

extends Area2D

func _ready():
	body_entered.connect(_on_star_caught)

func _on_star_caught(star):
	print("Caught a star!")

信号与碰撞中的所有课

自己练习: Godot 在线编辑器