ゲーム等で複数のキーを同じ効果にする方法

まず、一般的ななにかキーを押した時の分岐を見てみます。

//自分でキーを定義してしまう。
左キー{←}は 37。
右キー{→}は 39。
zキーは 90。
xキーは 88。

母艦の、キー押した時は、キーイベント。
待機。

*キーイベント
押されたキーで、条件分岐。
左キーの時、左移動。
右キーの時、右移動。
zキーの時、決定。
xキーの時、決定。


*左移動
*右移動
*決定

こんどは自由にキー配置ができるゲームの場合のサンプルです。

「左キー、右キー、決定キーの順に押してね」と、言う。
ここにきた回数は、0。
母艦の、キー押した時は、キーコンフィグ。
待機。

*キーコンフィグ
ここにきた回数は、ここにきた回数+1
ここにきた回数で、条件分岐。
1の時、左キーは、押されたキー
2の時、右キーは、押されたキー
3の時、(決定キーは、押されたキー
母艦の、キー押した時は、キーイベント。)
待機

*キーイベント
押されたキーで、条件分岐。
左キーの時、左移動。
右キーの時、右移動。
決定キーの時、決定。

*左移動
*右移動
*決定

コンフィグができた代償に、決定キーの数が減ってしまいました。
理想としては決定キー等が複数個設定できるほうがいいですね。
そうするにはどうするかというと、辞書(ハッシュ)を使う方法があります。

「左キー、右キー、決定キーの順に押してね」と、表示。
ここにきた回数は、0。
母艦の、キー押した時は、キーコンフィグ。
待機。

*キーコンフィグ
ここにきた回数は、ここにきた回数+1
ここにきた回数で、条件分岐。
1の時、キー辞書の、押されたキーは、「左キー」。
2の時、キー辞書の、押されたキーは、「右キー」。
3の時、(キー辞書の、押されたキーは、「決定キー」。
母艦の、キー押した時は、キーイベント。
ここにきた回数は、0。)
待機

*キーイベント
キーは、キー辞書の、押されたキー。
キーで、条件分岐。

『左キー』の時、左移動。
『右キー』の時、右移動。
『決定キー』の時、決定。

*左移動
*右移動
*決定

なにかしらの方法で2回キーコンフィグをやったとして、
左キーに←、V。
右キーに→、B。
決定キーにZ、スペースを割り当てたとします。
キー辞書の中身はこうなります。(37は←。 39は→。 90はZ。 32はSpace。 86はV。 66はB)

37=左キー
39=右キー
90=決定キー
32=決定キー
86=左キー
66=右キー

キーイベントでは、押されたキー番号から何の効果のキーを押したかで条件分岐します。
たとえば37のキーをおした場合、変数「キー」には「左キー」という単語が入ります。あとは簡単ですね。

また、キーコンフィグでZを左キーに変えたりした場合でも辞書内の90=の右辺が変わるだけです。

//サンプル(ひまわり1.77)
効果ラベルを、ラベルとして、作成。
キーコンフィグボタンを、作る。
その、イベントは、キーコンフィグ準備。
キー辞書を言うボタンを、作る。
その、イベントは、キー辞書を、言う。
母艦の、キー押した時は、キーイベント。
ここにきた回数は、0
効果ラベルの、テキストは、「キーコンフィグしてください」
待機。

*キーコンフィグ準備
効果ラベルの、テキストは、「パンチボタン、キックボタン、投げボタンの順に押してね」
母艦の、キー押した時は、キーコンフィグ。
待機。
*キーコンフィグ
ここにきた回数は、ここにきた回数+1
ここにきた回数で、条件分岐。
1の時、キー辞書の、押されたキーは、パンチボタン。
2の時、キー辞書の、押されたキーは、キックボタン。
3の時、(キー辞書の、押されたキーは、投げボタン。
母艦の、キー押した時は、キーイベント。
ここにきた回数は、0
効果ラベルの、テキストは、「キーコンフィグ完了」)
待機。

*キーイベント
キーは、キー辞書の、押されたキー。
キーで、条件分岐。
『パンチボタン』の時、効果ラベルの、テキストは、「パンチだ!」
『キックボタン』の時、効果ラベルの、テキストは、「キックだ!」
『投げボタン』の時、効果ラベルの、テキストは、「投げ技だ!」

キーコンフィグするたびに使用できるキーが増えていきます。


ひまわりのコーナーに戻る
戻る