エリアがボディを検知する
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に沿って歩きます。
チャレンジ
簡単ゾーンをロボットの通り道に配置しましょう。
- ロボットは
y = 250に沿って歩きます。_ready()で、ゾーンのposition.yを250に設定します。 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プレイグラウンド