プレイヤーだけ
CoddyのGodotジャーニー「シグナルと衝突」セクションの一部。レッスン 4/27。
エリアは、入ってくるすべてのボディを検知します。多くの場合、ヒーローが来たときだけ開くドアのように、対象は1つだけにするべきです。
ifを使って、それが誰なのかを確認します。
func _on_body_entered(body):
if body.name == "Player":
print("Hello, player")==は、2つの値が等しいかどうかを調べます。ifの下にある、タブ1つ分字下げされた行は、値が等しい場合にのみ実行されます。名前は完全に一致していなければなりません。小文字のpを使った"player"は、別の名前です。
ここでは、まずローバーが圧力板の上を通り、その後あなたがその上を歩きます。
チャレンジ
簡単プレートがプレイヤーにだけ反応するようにしましょう。
_on_body_entered(body)内で、modulateの行をifの中に入れましょう。==を使って、ifでbody.nameが"Player"かどうかを確認しましょう。
「プレイ」を押すと、ローバーの場合はプレートの色がそのまま保たれ、プレイヤーが踏むとミント色に変わります。その後、「確認」を押しましょう。
自分で試してみよう
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
modulate = Color(0.49, 0.95, 0.75)
シグナルと衝突のすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド