【目標】
1.キー入力で、複数のキーが押されたかどうか(同時押し)を調べる。
(今回は左Shiftキーと決定キーの同時押しを判定するイベントを作成します)
2.同時押しした時に、文書を表示する。
【手順】
―― 【1】イベント作成 ―― まずマップ選択で「サンプルマップA」に切り替えてください。 分かりやすいところに、決定キーで起動するイベントを作成します。 グラフィックはニワトリにしましょう。 (参考:【決定キーで起動するイベント】) |
―― 【2】ループコマンド ―― イベントウィンドウの右下にある 「■ コマンド入力ウィンドウ表示 ■」をクリックして、 イベントコマンド入力ウィンドウを開いてください。 左側一覧から「H イベント制御」を選択します。 左上辺りにある「ループ(繰り返し)」をクリックして入力してください。 ※今回ループを使うのは、決定キーで起動するイベントだからです。 また、キー入力を2つ使用するため片一方で処理が止まってしまわないよう、 「キーが押されるまで待つ」にチェックは入れられない、という理由もあります。 そのため、毎フレーム実行される並列イベントなどでは、ループは必要ありません。 |
―― 【3】キー入力1(左Shift) ―― ループ内にイベントを入力していきます。 ウィンドウの左側から、「9 キー入力」を選択しましょう。 代入先は「このEv:セルフ0」のまま変更しません。 キー種をクリックして「キーボード全キー(100〜)」を選んでください。 そのすぐ下にある「特定キーのみ判定」にチェックを入れ、 キーコード欄には「142」と入力しましょう。 また、「キーが押されるまで待つ」にチェックが入っていない事を、 確認しておいてください。 最後に、ウィンドウ右下の「入力」ボタンをクリックします。 ※キーコードの数値は、マニュアルの イベントの作成→キー入力の項目に一覧があります。 また、エディタに打ち込むと、下部に対応したキーの名前が表示されます。 |
―― 【4】キー入力2(決定キー) ―― 続いて2つ目のキー入力コマンドを入れていきます。 そのままキー入力受け付けの、代入先を変更してください。 代入先は「このEv:セルフ1」を選びます。 そしてキー種は「基本」に戻しましょう。 決定キーの項目のみチェックを入れ、他は外してください。 方向キーも必要ありませんので、「受け付けない」にします。 出来ましたらウィンドウ右下の「入力」です。 |
―― 【5】条件分岐の設定 ―― 今度は左側一覧から「7 条件(変数)」を選んでください。 3変数を連動のチェックは外しましょう。 1つ目の条件分岐は「このイベント:Self0が0と同じ」 2つ目の条件分岐を「このイベント:Self1が10と同じ」 に設定します。 1つ目の分岐内は空のままいじりません。 2つ目の分岐内に「文章の表示」で、 キーが同時押しされた時に表示する文章を入力してください。 ※この分岐の解説は、ページ下部で行っています |
―― 【6】ウェイトを入れる ―― 最後に「分岐終了」の下、「ループここまで」との間に カーソルを移動してください。 もう一度ウィンドウ左から「H イベント制御」をクリックします。 ウェイトの項目をクリックして、1フレーム入力しましょう。 |
以上で完成です。 セーブしてテストプレイをしてみましょう。 イベントに話しかけると移動が出来なくなりますが、 問題はありません。 まず決定キーのみを押してください。 決定キー単独では文章が表示されない事を確認します。 次に、左Shiftと同時に決定キーを押してください。 入力した文章が表示されたら成功です。 お疲れ様でした。 |
【問題が発生した場合】 ◆イベントに話しかけると「1フレームあたりの処理が500000個を超えました!」という緑帯が出る ウェイトを入れ忘れているか、ウェイトの位置が間違っています。 確認しましょう。 ◆左Shiftや決定キーだけを押しても文章が表示されてしまう 条件分岐の設定を間違えているか、 文章の挿入位置を間違えている可能性があります。 分岐の設定と、文章の位置を見直してください。 ◆キーを入力しても、たまにしか反応してくれない ウェイトの数値が大きすぎる可能性があります。 毎フレーム判定するためには、1フレーム(並列なら0)、あるいはそれに近い数値にしてください。 ◆キーを同時押ししても反応してくれない ・キー入力の受け付け先を間違えている ・条件分岐の設定を間違えている ・キーコードの数値を間違えている などが考えられます。 それぞれ確認しましょう。 |
【余談】 【5】の条件分岐は何してる? 正しいキーが入力されると、代入先変数にその値が代入されます。 今回の場合ですと、セルフ0には左Shiftの「142」が、 セルフ1には決定キーの「10」が代入される事になります。 そして、それ以外の時には常に「0」が代入されています。 つまり、1つ目の分岐は左Shiftキーが押されていない時に満たされます。 その為、左Shiftが押されていると条件を満たさずに、2つ目以降の判定へと進みます。 そこで2つ目に決定キーの条件を記入してやると、 左Shiftが押され、尚且つ決定キーも押されている状態のみを、 1つの条件分岐コマンドで判別する事が可能です。 もちろん、制作時に分かりやすい事が第一ですので、 画像上のように2つの分岐を使用しても構いません。 |
<執筆者:七海>