仕上げ
ここまでで、ゲームのすべての機能は完成しました。以下は、ゲーム体験を向上させるためにもう少し「色どり」を加えるための、いくつかの残りの手順です。
あなたのアイデアで、自由にゲーム性を拡張してください。
背景
デフォルトのグレーの背景はあまり魅力的ではないので、色を変更してみましょう。これを行う 1 つの方法は、ColorRect ノードを使うことです。他のノードの後ろに描画されるように、それを Main の下の最初のノードにします。 ColorRect には、 Color というプロパティのみがあります。好きな色を選択し、"Layout" -> "Anchors Preset" -> "Rect全面" を選べば、画面はそれで覆われます。
背景画像がある場合は、代わりに TextureRect ノードを使用して、それを追加することもできます。
効果音
サウンドと音楽は、ゲーム体験に魅力を与えるには最も効果的な方法となりえます。ゲームの art フォルダには、BGMの House In a Forest Loop.ogg と、プレイヤーが負けたとき用の gameover.wav という2つのサウンドファイルがあります。
2つのAudioStreamPlayerノードを Main の子として追加します。その1つに Music 、もう1つに DeathSound と名前を付けます。各ファイルにて Stream プロパティをクリックし、「読み込み」を選択してから、対応するオーディオファイルを選択します。
すべてのオーディオは、 Loop 設定が無効な状態でインポートされます。音楽をループさせたい場合は、 Streamファイルの矢印をクリックして ユニーク化 を選択し、Streamファイルをクリックして Loop にチェックを入れます。
音楽を再生するには、 new_game() 関数に $Music.play() を追加し、 game_over() 関数に $Music.stop() を追加します。
最後に、 game_over() 関数に $DeathSound.play() を追加します。
func game_over():
...
$Music.stop()
$DeathSound.play()
func new_game():
...
$Music.play()
public void GameOver()
{
...
GetNode<AudioStreamPlayer>("Music").Stop();
GetNode<AudioStreamPlayer>("DeathSound").Play();
}
public void NewGame()
{
...
GetNode<AudioStreamPlayer>("Music").Play();
}
キーボード ショートカット
このゲームはキーボード コントロールにてプレイするので、キーボードのキーを押してゲームを開始できると便利です。それには Button ノードの「Shortcut」プロパティを使用すれば可能です。
前回のレッスンでは、キャラクターを移動させるための4つの入力アクションを作成しました。同様の入力アクションを作成して、これをスタートボタンに対応させます。
「プロジェクト」("Project") -> 「プロジェクト設定...」("Project Settings")を選択し、「インプットマップ」("Input Map")タブをクリックします。移動入力アクションを作成したのと同じ方法で、start_gameという新しい入力アクションを作成し、 Enter キー用のキーマッピングを追加してください。
利用可能なコントローラーがあれば、今がコントローラーサポートを追加する良いタイミングです。コントローラーを取り付けるかペアリングし、コントローラーサポートを追加したい各入力アクションの "+" ボタンをクリックし、マッピングしたいボタン、十字キー、スティックの方向を押します。
HUD シーンで、 StartButton を選択し、インスペクターで Shortcut プロパティを見つけます。ボックス内をクリックして新規Shortcutを作成し、Events配列を開き、 Array[InputEvent] (size 0) をクリックし、新しい要素を追加します。
新規 InputEventAction を作成し、start_game という名前にします。
スタートボタンが表示されたら、クリックするか、Enter を押してゲームを開始します。
これで、Godotで最初の2Dゲームが完成しました。
プレイヤーが操作するキャラクター、ゲームボードの周囲にランダムに出現する敵、スコアのカウント、ゲームオーバーやリプレイの実装、ユーザーインターフェース、サウンドなど、いろいろ作り込んできました。おめでとうございます!
まだまだ学ぶべきことはたくさんありますが、達成したことを理解する時間を持ちましょう。
そして、準備ができたら 最初の3Dゲーム に進み、Godotでゼロから完全な3Dゲームを作ることを学びましょう。