Menu
CoddyTech

图层与遮罩

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

物体和区域位于编号的碰撞层上。每个都有两个设置:

  • collision_layer:它所在的层。
  • collision_mask:它检测的层。区域只会注意到位于其遮罩所包含层上的物体。

这两项都是数字。第 1 层是 1,第 2 层是 2,第 3 层是 4,第 4 层是 8。所有物体默认都在第 1 层,遮罩也为 1,所以所有物体都会注意到彼此。

这里,玩家位于第 2 层,珊瑚球位于第 1 层。要让只有玩家能拿到硬币,就让硬币只检测第 2 层:

func _ready():
	collision_mask = 2
challenge icon

挑战

中等

让硬币只检测玩家。

  1. 玩家位于第 2 层。在 _ready() 开始时,设置硬币的 collision_mask,让它只检测第 2 层。
  2. 保持 connect 这一行不变。

按“开始”:球滚过硬币,然后你走过去把它捡起来。接着按“检查”。

亲手试试

extends Area2D

func _ready():
	body_entered.connect(_on_body_entered)

func _on_body_entered(body):
	queue_free()
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

信号与碰撞中的所有课

自己练习: Godot 在线编辑器