※この連載の全ての記事は、タグ「ビッグカツ」の検索一覧から探すことができます。
※この連載で作ったゲームは「BigBreakOut(ゲームの作り方の記事付き) | フリーゲーム投稿サイト GodotPlayer」でプレイできます。
昔から人気の駄菓子「ビッグカツ」のフリー素材画像が公開されたので、無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 を使って、ビッグカツ画像を使ったブロック崩しを作成します。
「ビッグカツブロック崩し」作成の第30回では、前回作成した最速タイム (BestTime) のセーブデータを、タイトル画面に追加したリセットボタンを押すことで最速タイムの記録を無効にするスクリプト例を紹介します。
また、GodotEngine4 エディタの F5 キーでメインシーンから実行して保存したセーブファイルの保存場所についても紹介します。
![](https://compota-soft.work/wp1/wp-content/uploads/2024/09/GodotEngine4.3-公式サイトの一部-20240911.png)
※ GodotEngine 4.3 を使用しています。.NET 版ではありません。
※スクリプトは自己責任でご使用ください。
前回の記事
前回は、ゲームクリア時の最速タイムをセーブデータから読み込み、まだ記録されていない場合は非表示、記録があれば表示し、さらに速いタイムでクリアすれば更新する処理の実装例を紹介しました。
エディタ上でのセーブデータを消す方法
セーブデータがない状態でテストしたい場合は、「%APPDATA%\Godot\app_userdata\」のアプリ名のフォルダにある .save 拡張子のファイルを削除します。
そのファイルをテキストエディタなどで開くことで、セーブデータの内容を確認することもできます。
![](https://compota-soft.work/wp1/wp-content/uploads/2025/01/Godot4-ビッグカツブロック崩し-Windowsエディタ実行時のセーブデータの位置.png)
※上記は Windows OS で、 GodotEngine4 エディタ上で実行した際にファイルが保存されるフォルダパスです。
このフォルダは、メニュー「プロジェクト」→「ユーザーデータフォルダーを開く」からアクセスすることもできます。
![Godot4 ビッグカツブロック崩し セーブファイルのフォルダの開き方](https://compota-soft.work/wp1/wp-content/uploads/2025/01/Godot4-ビッグカツブロック崩し-セーブファイルのフォルダの開き方.png)
最速タイムの記録のリセット
タイトルのシーンを開いて、 2D ワークスペースで BestTime Reset ボタン (Button クラス派生ノード) を配置して、その button_up() シグナルの受信側メソッドの関数を title_scene.gd に追加します。
![Godot4 ビッグカツブロック崩し BestTime Reset ボタンの作成](https://compota-soft.work/wp1/wp-content/uploads/2025/01/Godot4-ビッグカツブロック崩し-BestTime-Reset-ボタンの作成-1024x505.png)
title_scene.gd に追加した、ボタンが離されたときの button_up() シグナルの受信側メソッドに以下のように処理を定義します。
これにより、ボタンが押されると、その受信側メソッドが呼び出されます。
その受信側メソッドの関数内で、グローバルノード SaveDataGlobal のメンバ関数を呼び出すことで、ベストタイムを初期化 (best_time メンバ変数に -1.0 を設定)します。
※詳細はスクリプトのコメントを参照してください。
## BestTime Reset ボタンが離された際に呼び出される関数(受信側メソッド)です。
func _on_button_best_time_reset_button_up():
# ボタンの効果音を再生します。
SCUtil.AudioStreamOneShotPlay(SCUtilGlobal, audio_stream_button)
# ベストタイムのセーブデータを初期化します。
$"/root/SaveDataGlobal".init_best_time()
return
以下が、ベストタイムを初期化する静的関数です。
今回の仕様では、ベストタイムの値が -1 の場合は、無効な値として扱うので、 -1 に変更してセーブしています。
## ベストタイムを初期化します。
## プレイ中の BestTime のラベルの表示を更新するには ステージのシーンの $BestTime.update_label() を呼び出してください。
func init_best_time()->void:
best_time = -1.0 # ベストタイムを初期値に変更します。
save_app_data() # セーブします。
return
テスト
F5 キーで、設定したメインシーン、タイトルのシーンから実行します。
※メインシーンの設定は、メニュー「プロジェクト」→「プロジェクト設定」の「一般」タブのツリー「アプリケーション」→「実行」の「メインシーン」項目で設定できます。
以前に記録された最速タイムが左上の BestTime の下に表示されています。
次に、タイトルに戻り、タイトル画面の下側の BestTime Reset ボタンを押した後に、プレイを開始すると、有効な最速タイムの記録がないために、さきほどは左に表示されていた BestTime の表示が消えました。
![Godot4 ビッグカツブロック崩し BestTime Reset ボタンのテストSS1](https://compota-soft.work/wp1/wp-content/uploads/2025/01/Godot4-ビッグカツブロック崩し-BestTime-Reset-ボタンのテストSS1.png)
![Godot4 ビッグカツブロック崩し BestTime Reset ボタンのテストSS2](https://compota-soft.work/wp1/wp-content/uploads/2025/01/Godot4-ビッグカツブロック崩し-BestTime-Reset-ボタンのテストSS2.png)
![Godot4 ビッグカツブロック崩し BestTime Reset ボタンのテストSS3](https://compota-soft.work/wp1/wp-content/uploads/2025/01/Godot4-ビッグカツブロック崩し-BestTime-Reset-ボタンのテストSS3.png)
まとめ
「ビッグカツブロック崩し」作成の第30回では、前回作成した最速タイム (BestTime) のセーブデータを、タイトル画面に追加したリセットボタンを押すことで最速タイムの記録を無効にするスクリプト例を紹介しました。
また、GodotEngine4 エディタの F5 キーでメインシーンから実行して保存したセーブファイルの保存場所についても紹介しました。
参照サイト Thank You!
- Godot Engine – Free and open source 2D and 3D game engine
- Xユーザーのビッグカツといか姿フライのすぐる【公式】さん: 「使いどころは思いつきませんが、フリー素材としてどうぞご自由にお使いくださいませ! https://t.co/8F9q3hS02b」 / X
- しょかきうたげ【フリーフォント版あり】 – ぼんのう堂 – BOOTH
- シグナルの使用 — Godot Engine (4.x)の日本語のドキュメント
- シーンを手動で変更する — Godot Engine (4.x)の日本語のドキュメント
- SceneTree — Godot Engine (4.x)の日本語のドキュメント #change-scene-to-file
- Button — Godot Engine (stable) documentation in English
記事一覧 → Compota-Soft-Press
コメント