Menu
CoddyTech

エリアがボディを検知する

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に沿って歩きます。

challenge icon

チャレンジ

簡単

ゾーンをロボットの通り道に配置しましょう。

  1. ロボットは y = 250 に沿って歩きます。_ready() で、ゾーンの position.y を 250 に設定します。
  2. 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プレイグラウンド