VisibleOnScreenNotifier2Dの使い方


VisibleOnScreenNotifier2Dは、2Dオブジェクトがカメラのビュー(画面)内にいるかどうかを検出するためのノードです。 これを使えば、敵やアイテムが画面外に出たときに削除したり、新しいイベントをトリガーすることができます。



2. VisibleOnScreenNotifier2Dの基本的な使用方法

シーンのセットアップ

  1. 新しいシーンを作成します。
  1. Node2Dを親ノードとして設定します。
  1. 子ノードとして以下を追加します:
  • Sprite2D(画像を表示)
  • VisibleOnScreenNotifier2D


VisibleOnScreenNotifier2Dの設定

  1. VisibleOnScreenNotifier2Dを選択します。
  1. 必要に応じてインスペクターで以下の設定を確認または変更します:
  • Viewport: カメラビューがどの領域を判定対象にするかを指定できます。



3. VisibleOnScreenNotifier2Dの信号を使用

VisibleOnScreenNotifier2Dには以下の2つの重要な信号があります:
  • screen_entered: オブジェクトが画面内に入ったときに発生。
  • screen_exited: オブジェクトが画面外に出たときに発生。


信号の接続

  1. VisibleOnScreenNotifier2Dを選択。
  1. シーンタブの「ノード」ボタンをクリック。
  1. screen_enteredまたはscreen_exited信号を接続します。
  1. 自動生成された関数内にコードを追加します。



4. スクリプトの実装

以下のスクリプト例では、画面外に出たオブジェクトを削除する処理を実装します。

スクリプトの例

func _ready():
# VisibleOnScreenNotifier2Dノードの信号を接続
$VisibleOnScreenNotifier2D.screen_exited.connect(on_screen_exited)

# 画面外に出たときの処理
func on_screen_exited():
queue_free() # このノードを削除



5. 実践例:敵が画面外に出たときに削除

以下は、VisibleOnScreenNotifier2Dを使った敵キャラクターの例です:

敵キャラクターのスクリプト

@export var speed = 200

func _ready():
# 敵キャラクターの初期設定
$VisibleOnScreenNotifier2D.screen_exited.connect(on_screen_exited)
$AnimatedSprite2D.play()

func _process(delta):
# 敵キャラクターを左に移動
position.x -= speed * delta

# 画面外に出たときの処理
func on_screen_exited():
queue_free() # 敵を削除



6. 応用:ゲームロジックへの利用

画面内に入ったときに動作を開始:gdscriptコードをコピーする
func on_screen_entered():
print("画面内に入りました!")
$AnimatedSprite2D.play("run")

アイテムが画面外に出たらスコアを減少:
func on_screen_exited():
emit_signal("score_decrease", 10) # スコアを減らす
queue_free()



学習のポイント

  1. ゲームのパフォーマンス向上 画面外のオブジェクトを削除することで、ゲームのリソースを節約できます。
  1. ゲームロジックのトリガー 信号を活用して、敵やアイテムの動きを制御できます。
  1. 簡単なインタラクションの実装 VisibleOnScreenNotifier2Dを使用して、プレイヤーに新しい挑戦を与える仕組みを簡単に作成できます。


このチュートリアルを参考に、画面内外のイベントを活用したゲームメカニクスを作り上げてください!
最終更新日: 2024/11/27 02:38

コメント