Menu
CoddyTech

エリア同士の接触

CoddyのGodotジャーニー「シグナルと衝突」セクションの一部。レッスン 6/27。

Godotのノードには、シグナルが組み込まれています。Area2Dには、よく使うシグナルが4つあります。

  • body_enteredとbody_exited:ボディが入ってきた、または出ていったことを示します。ボディとは、CharacterBody2DやStaticBody2Dのような、固体のものです。
  • area_enteredとarea_exited:別のエリアが入ってきた、または出ていったことを示します。

エリアは、別のエリアに対してbody_enteredを送信しません。落ちてくる星はエリアなので、かごにはarea_enteredが必要です。

func _ready():
	area_entered.connect(_on_star_caught)

この関数は入ってきたエリアを受け取るので、_on_body_entered(body)のように、値を1つ受け取ります。名前は自由に付けられます。

challenge icon

チャレンジ

簡単

かごが落ちてくる星に気づくようにしましょう。

  1. 星はボディではなくエリアです。_ready()で、body_enteredの代わりにarea_enteredを接続します。
  2. 関数は_on_star_caughtのままにします。

「プレイ」を押すと、コンソールにCaught a star!と2回、星1つにつき1回ずつ表示されます。その後、「確認」を押します。

自分で試してみよう

extends Area2D

func _ready():
	body_entered.connect(_on_star_caught)

func _on_star_caught(star):
	print("Caught a star!")

シグナルと衝突のすべてのレッスン

自分で練習してみよう: Godotプレイグラウンド