議論
フォーラム
GDevelopでグローバル変数をリセットしゲームを再起動する方法
GDevelopでゲームをプレイ中に、全てのグローバル変数を初期値に戻してゲームを再開したいと思ったことはありませんか?フォーラムでは、この「全グローバル変数のリセット」と「ゲームの再起動」を一度に行う簡単な方法についての質問が寄せられています。
以前の投稿は2022年のものですが、現在も同様の疑問を持つユーザーがいるようです。
全グローバル変数をリセットする単一アクションは存在するか?
現状、GDevelopにはグローバル変数をすべてまとめて初期値にリセットする単一のアクションは用意されていません。これは、グローバル変数一つ一つに名前がついており、それらをまとめて指定することが難しいためと考えられます。
代替手段:最も簡単な方法
もし全グローバル変数をリセットしたい場合、最も簡単な方法は、各グローバル変数に対して個別に「グローバル変数 `変数の名前` を `初期値` に設定する」イベントを追加することです。
例えば、以下のようなイベントを作成します。
- グローバル変数 "Score" を 0 に設定する
- グローバル変数 "Lives" を 3 に設定する
- グローバル変数 "PlayerName" を "Guest" に設定する
このように、リセットしたい全てのグローバル変数について、初期値を設定するイベントを記述する必要があります。イベントシートの先頭や、特定の条件(例:リトライボタンが押された時)でこれらのイベントを実行するように設定します。
ゲームの再起動について
グローバル変数のリセットと合わせてゲームを再起動したい場合は、これらの変数リセットイベントの後に、「シーンを現在のシーンに変更する」アクションを追加することで実現できます。これにより、あたかもゲームを最初から始めたかのように動作させることが可能です。
この方法は少し手間がかかりますが、GDevelopの現在の仕様では最も確実な方法と言えるでしょう。コミュニティでは、より効率的な方法や将来的な機能追加についてのアイデアも議論されています。