なでしこを明後日の方向に

日本語プログラム言語なでしこを応援しています

なでしこでゲーム作る話  #4 変数にはグループを使う

グローバル変数のかわりにグループを使うのがおすすめ

グループを変数のかたまりとして使おうという話です。
ゲームにつかう変数はいくつか特徴があります。
・たびたび初期化が必要になる(面クリア時など)
・保存と呼び出しを期待される(リスタートなど)
・変数の数が膨大になる

普通にグローバル変数を宣言してこれらをやると神経を使います。
そして初期化を忘れてバグになります

グループコピーが活躍する

まずはグループの宣言です。

■プレイヤー
 ・X{=10}
 ・Y{=10}
 ・HP{=100}
 
プレイヤー初期値とはプレイヤー
主人公とはプレイヤー

グループも宣言と同時に初期値を入れることができます。
普通の変数宣言でも初期値は入れられますが、初期値を別の変数(プレイヤー初期値)にとっておくのがコツです。

ゲームが進み、ゲームオーバーになりました。 さて主人公の位置やHPを初期値にもどしましょう。

●プレイヤー初期化
 主人公プレイヤー初期値グループコピー

グループコピー一つで初期値に戻りました。
短くて楽というのもありますが、次にもっと良い点が。
ゲームを作っている途中で変数を増やすことがありますね。
メンバに「武器」を追加してみましょう。

■プレイヤー
 ・X{=10}
 ・Y{=10}
 ・HP{=100}
 ・武器{="素手"}  //追加
プレイヤー初期値とはプレイヤー
主人公とはプレイヤー

●プレイヤー初期化
 主人公プレイヤー初期値グループコピー

グローバル変数だと、ここで初期化部分もいじらなくてはなりません。
でも今回はグループコピーで行っているので初期化部分は触らなくても大丈夫です。
初期化関連でバグを起こす可能性が減りました。
このバグは見逃しやすいので減らす仕組みが大事だと思います。