Godot4 ビッグカツブロック崩し21ゲームオーバー・クリア画面の作成1/2

昔から人気の駄菓子「ビッグカツ」フリー素材画像が公開されたので、無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 を使って、ビッグカツ画像を使ったブロック崩しを作成します。

「ビッグカツブロック崩し」作成の第21回では、ゲームオーバーやゲームクリア、プレイ開始前やレベルクリア時のそれぞれのタイミングで表示するメッセージやボタンなどの UI作成する手順を紹介します。
表示順の設定や、似た UI ノード群を作成するために便利な複製や非表示の機能も紹介します。

※ GodotEngine 4.3 を使用しています。.NET 版ではありません。
※スクリプトは自己責任でご使用ください。

前回の記事

前回は、ボール画面外に落ちた際にゲームオーバーになったことを、ボールシーンの外部に伝えるために、カスタムシグナルを作成して、それを外部のノードの関数で受け取る実装例を紹介しました。

ゲームオーバーの UI のノード群の構成

ゲームオーバーの UI として以下の構成で4つのノードを作成します。

  • Control ノード(ノード群をまとめる)
    • GAME OVER のテキストを表示するラベル
    • リトライボタン(もう一度プレイ)
    • ギブアップボタン(タイトルに戻る)

前半では、ラベルやボタンなどのノード群をまとめる Control ノードを画面サイズぴったりに配置して、表示順を最前面にします。

ステージのシーンに Control ノードを追加

ゲームオーバー画面のラベルやボタンを配置する上位ノードを作成します。

Stage タブを選んで、ステージのシーンを開き、シーンドックの Stage ルートノード右クリックして表示されるメニュー「子ノードを追加」を選択します。

Godot4 ビッグカツブロック崩し ゲームオーバー用のノードを持たせる Conrtol ノードの作成と配置1

クラスは、ボタンやラベルをその下位に配置するだけなので、GUI コントロールの基本となる Control クラスを選択しました。

Godot4 ビッグカツブロック崩し ゲームオーバー用のノードを持たせる Conrtol ノードの作成と配置2

作成されたノードの名前をわかりやすくするため Control から GameOverUI に変更します。
※ノード名の変更は、ノードを右クリックして表示されるメニュー「名前を変更」などで行います。

Godot4 ビッグカツブロック崩し ゲームオーバー用のノードを持たせる Conrtol ノードの作成と配置3

Control ノードの位置とサイズの設定

GameOverUI ノード(Control クラス)の位置とサイズ画面の表示領域合わせて設定します。
インスペクタードックで、Control クラスの Transform セクションの Size プロパティで画面サイズ(例では 540 × 960)を、Position プロパティで原点の (0, 0) を指定します。

Godot4 ビッグカツブロック崩し ゲームオーバー用のノードを持たせる Conrtol ノードの作成と配置4

Z Index による表示順の設定

シーンに最初から配置されていないブロックを、実行後に動的にシーンに追加配置すると、あとから追加されたノードが最前面に表示されてしまい、ゲームオーバー時に表示されるボタンなどが隠れてしまいます。

Godot4 ビッグカツブロック崩し ゲームオーバー用のノードを持たせる Conrtol ノードのZ-Indexによるボタンと動的に追加したブロックとの前後関係の違い

シーンドックのツリーの順番よりも強く表示順を設定できる Z Index プロパティを調整することでこの問題は解決します。

シーンドックで GameOverUI ノードを選択して、インスペクタードックで CanvasItem クラスの Ordering セクションの Z Index プロパティを 0 から 1 に変更します。

ブロックを含めた他のノードは全て Z Index プロパティの値が初期値の 0 なので、GameOverUI ノードが最前面に表示されるようになります。
また、 GameOverUI ノードの子ノードも同じように最前面に表示されます。

Godot4 ビッグカツブロック崩し ゲームオーバー用のノードを持たせる Conrtol ノードの作成と配置5

今回はここまで

「ビッグカツブロック崩し」作成の第21回では、ゲームオーバーになった際に表示するメッセージやボタンなどの UI ノードをまとめる上位の Control クラスのノードを作成・配置する手順を紹介しました。
実行後に動的に追加されたノードよりも手前に表示するために Z Index プロパティを調整しました。

参照サイト Thank You!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました