レイヤーとマスク
CoddyのGodotジャーニー「シグナルと衝突」セクションの一部。レッスン 22/27。
ボディとエリアは、番号付きの衝突レイヤーに属します。それぞれに2つの設定があります。
collision_layer: どのレイヤーに属しているか。collision_mask: どのレイヤーを見るか。エリアは、マスクに含まれるレイヤー上のボディだけを検知します。
どちらも数値です。レイヤー1は1、レイヤー2は2、レイヤー3は4、レイヤー4は8です。すべて最初はレイヤー1に属し、マスクは1なので、すべてがすべてを検知します。
ここでは、プレイヤーはレイヤー2に属し、サンゴのボールはレイヤー1に属しています。プレイヤーだけがコインを取れるようにするには、コインがレイヤー2だけを見るようにします。
func _ready():
collision_mask = 2チャレンジ
中級コインがプレイヤーだけを検知するようにします。
- プレイヤーはレイヤー2にいます。
_ready()の開始時に、コインのcollision_maskをレイヤー2だけを検知するように設定します。 connectの行はそのままにします。
「プレイ」を押します。ボールはコインを通り抜け、その後、歩いて近づいてコインを取ります。それから「確認」を押します。
自分で試してみよう
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
queue_free()
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
シグナルと衝突のすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド