WOLF RPGエディター(ウディタ)/イベントコマンド【サイトトップへ戻る】
■【使用例】キー入力
(更新:2024/07/28)


イベントコマンド【キー入力】に関する使用例を紹介します。


ショートカット
■【使用例】「キーが押されるまで待つ」を自作する(キーボード)
「キー入力受け付け」
■【使用例】「キーが押されるまで待つ」を自作する(クリック)
「キー入力受け付け」
■【使用例】「キーが押されるまで待つ」を使わずに
      システム変数[15][16]を使った方向キーの【キー入力】の処理を設定
「キー入力受け付け」
■【使用例】キーボード入力を強制終了させる
「自動キー入力」



以下は【キー入力】を使った別のページにある使用例です。
クリックするとYADOT-WOLF内の別ページが開きます。

別ページの使用例
■自作メニューの基礎講座
「キー入力受け付け」



【キー入力】の基本説明は別ページに記載しています。
【キー入力の基本説明を開く】


  
「キー入力受け付け」
■【使用例】「キーが押されるまで待つ」を自作する(キーボード)

【キー入力】には「キーが押されるまで待つ」と言った設定があります。



この「キーが押されるまで待つ」を設定すると、
指定した設定したキーが押されるまで、イベント処理が停止します。

しかし「キーが押されるまで待つ」を設定し、
指定したキーを押し続けると何度も実行すると言った問題があります。

例えば以下のような処理を実行した場合、Aキーを押し続けると何度もデバッグ文「Aキー実行」が表示されます。

【イベントコード表示】

■コモンイベント

起動条件:並列実行(常時)

■キー入力:CSelf10[入力待ち] キーボード(100〜) [キーコード[130]のみ判定] ( Aキー )
■条件分岐(変数): 【1】 CSelf10 が 130 と同じ
-◇分岐: 【1】 [ CSelf10 が 130 と同じ ]の場合↓
|■デバッグ文:Aキー実行
|■
◇分岐終了◇

また「キーが押されるまで待つ」にすると【キー入力】の所でイベント処理が停止するため、
【キー入力】の所でイベント処理を止めたくない時には「キーが押されるまで待つ」を設定する事はできません。

もしもイベント処理を止めずに、指定されたキーが押された時に1回だけイベントが実行するようにしたい時には、
自作のキー入力待ちの処理を設定する必要があります。



▼基本設定

セルフ変数[入力可能]を準備し…
セルフ変数[入力可能]=0 キーが押されている状態(キーを離さないとキー入力を受け付けない)
セルフ変数[入力可能]=1 キーが押されていない状態(キー入力を受け付ける)
と処理します。

以下の処理は、Aキーを押すと1回だけデバッグ文「Aキー実行」が実行され、
再び実行するためには、一度Aキーを離して、再びAキーを押し直す必要があります。

【イベントコード表示】

■コモンイベント

起動条件:並列実行(常時)

■キー入力:CSelf10[キーコード]キーボード(100〜) [キーコード[130]のみ判定] ( Aキー )
■条件分岐(変数): 【1】 CSelf10[キーコード] が 0 と同じ
         【2】 CSelf15[入力可能] が 0 と同じ
         【3】 CSelf10[キーコード] が 130 と同じ
-◇分岐: 【1】 [ CSelf10[キーコード] が 0 と同じ ]の場合↓
|■変数操作: CSelf15[入力可能] = 1 + 0
|■
-◇分岐: 【2】 [ CSelf15[入力可能] が 0 と同じ ]の場合↓
|■
-◇分岐: 【3】 [ CSelf10[キーコード] が 130 と同じ ]の場合↓
|■変数操作: CSelf15[入力可能] = 0 + 0
|■デバッグ文:Aキー実行
|■
◇分岐終了◇



▼2つのキーに対応

複数のキー入力に対応させる事もできます。

【イベントコード表示】

■コモンイベント

起動条件:並列実行(常時)

■キー入力:CSelf10[キーコード]キーボード(100〜) [キーコード[130]のみ判定] ( Aキー )
■キー入力:CSelf11[キーコード2]キーボード(100〜) [キーコード[131]のみ判定] ( Sキー )
■変数操作: CSelf10[キーコード] 下限= CSelf11[キーコード2] + 0
■条件分岐(変数): 【1】 CSelf10[キーコード] が 0 と同じ
         【2】 CSelf15[入力可能] が 0 と同じ
-◇分岐: 【1】 [ CSelf10[キーコード] が 0 と同じ ]の場合↓
|■変数操作: CSelf15[入力可能] = 1 + 0
|■
-◇分岐: 【2】 [ CSelf15[入力可能] が 0 と同じ ]の場合↓
|■
-◇上記以外
|■変数操作: CSelf15[入力可能] = 0 + 0
|■条件分岐(変数): 【1】 CSelf10[キーコード] が 130 と同じ
          【2】 CSelf10[キーコード] が 131 と同じ
|-◇分岐: 【1】 [ CSelf10[キーコード] が 130 と同じ ]の場合↓
||■デバッグ文:Aキー実行
||■
|-◇分岐: 【2】 [ CSelf10[キーコード] が 131 と同じ ]の場合↓
||■デバッグ文:Sキー実行
||■
|◇分岐終了◇
|■
◇分岐終了◇



▼セルフ変数[入力可能]をキーコードごとに設定

複数のキーの同時押しなどに対応させる場合は、
キーコードごとにセルフ変数[入力可能]を用意した方が良いでしょう。

【イベントコード表示】

■コモンイベント

起動条件:並列実行(常時)

■キー入力:CSelf10[キーコード]キーボード(100〜) [キーコード[130]のみ判定] ( Aキー )
■条件分岐(変数): 【1】 CSelf10[キーコード] が 0 と同じ
         【2】 CSelf15[入力可能[A]] が 0 と同じ
         【3】 CSelf10[キーコード] が 130 と同じ
-◇分岐: 【1】 [ CSelf10[キーコード] が 0 と同じ ]の場合↓
|■変数操作: CSelf15[入力可能[A]] = 1 + 0
|■
-◇分岐: 【2】 [ CSelf15[入力可能[A]] が 0 と同じ ]の場合↓
|■
-◇分岐: 【3】 [ CSelf10[キーコード] が 130 と同じ ]の場合↓
|■変数操作: CSelf15[入力可能[A]] = 0 + 0
|■デバッグ文:Aキー実行
|■
◇分岐終了◇
■キー入力:CSelf10[キーコード]キーボード(100〜) [キーコード[131]のみ判定] ( Sキー )
■条件分岐(変数): 【1】 CSelf10[キーコード] が 0 と同じ
         【2】 CSelf16[入力可能[S]] が 0 と同じ
         【3】 CSelf10[キーコード] が 131 と同じ
-◇分岐: 【1】 [ CSelf10[キーコード] が 0 と同じ ]の場合↓
|■変数操作: CSelf16[入力可能[S]] = 1 + 0
|■
-◇分岐: 【2】 [ CSelf16[入力可能[S]] が 0 と同じ ]の場合↓
|■
-◇分岐: 【3】 [ CSelf10[キーコード] が 131 と同じ ]の場合↓
|■変数操作: CSelf16[入力可能[S]] = 0 + 0
|■デバッグ文:Sキー実行
|■
◇分岐終了◇



▼何も押していない状態から何らかのキーが押されたら先へ進む

何らかのキーを押すとイベント処理が先へ進む場合で、
イベント処理を始める前から何らかのキーが押されている場合は、
一度全てのキーを離してからもう一度キーを押し直さないと先へ進めないようにする場合は、
以下のように設定してください。

【イベントコード表示】

■コモンイベント

起動条件:並列実行(常時)

■変数操作: CSelf15[入力可能] = 0 + 0
■ループ開始
|■ウェイト:1 フレーム
|■キー入力:CSelf10[キーコード]キーボード(100〜)
|■キー入力:CSelf11[キーコード2] 8方向 決定(10) キャンセル(11) サブキー(12)
|■変数操作: CSelf10[キーコード] 下限= CSelf11[キーコード2] + 0
|■条件分岐(変数): 【1】 CSelf10[キーコード] が 0 と同じ
          【2】 CSelf15[入力可能] が 0 と同じ
          【3】 CSelf10[キーコード] が 1 以上
|-◇分岐: 【1】 [ CSelf10[キーコード] が 0 と同じ ]の場合↓
||■変数操作: CSelf15[入力可能] = 1 + 0
||■
|-◇分岐: 【2】 [ CSelf15[入力可能] が 0 と同じ ]の場合↓
||■
|-◇分岐: 【3】 [ CSelf10[キーコード] が 1 以上 ]の場合↓
||■デバッグ文:キーコード「\cself[10]」を押した
||■ループ中断
||■
|◇分岐終了◇
|■
◇ループここまで◇◇

上記の処理では「キーボード(100〜)」と
8方向+決定+キャンセル+サブ」の2つの【キー入力】が設定されています。

これは「キーボード(100〜)」だけでは、
方向キー、Shiftキー、スペースキー、Escキーなどの一部のキー入力の読み取りができないため、
8方向+決定+キャンセル+サブ」の設定も行っています。

▼「キーボード全キー(100〜)」だけで読み取れるキー入力の範囲


▼「キーボード全キー(100〜)」+「8方向+決定+キャンセル+サブ」で読み取れるキー入力の範囲




▼決定キーやキャンセルキーを離したら先に進む

自作メニューの処理などで、決定キーやキャンセルキーを押したあとに、
キーが押されている状態で先へ進むと何らかの不具合が発生する可能性がある場合は、
以下のように設定してください。

【イベントコード表示】

■コモンイベント

起動条件:並列実行(常時)

■ループ開始
|■キー入力:CSelf10[キーコード] 決定(10) キャンセル(11)
|■条件分岐(変数): 【1】 CSelf10[キーコード] が 0 と同じ
|-◇分岐: 【1】 [ CSelf10[キーコード] が 0 と同じ ]の場合↓
||■ループ中断
||■
|◇分岐終了◇
|■ウェイト:1 フレーム
|■
◇ループここまで◇◇


▲トップへ戻る▲


  
「キー入力受け付け」
■【使用例】「キーが押されるまで待つ」を自作する(クリック)

マウスのクリックの場合、キーボードのキー入力とは異なり、
キーが押されるまで待つ」を設定してクリックし続けても、何度も実行するような事はありません。

そのため以下のような設定を実行してクリックし続けても、
1回だけしかデバッグ文「クリックした」が実行されません。

【イベントコード表示】

■コモンイベント

起動条件:並列実行(常時)

■キー入力:CSelf10[クリック][入力待ち] マウス 左クリック(20)
■デバッグ文:クリックした

しかしクリック処理だけでなく、キーボードの入力処理も一緒に設定したいなど、
キーが押されるまで待つ」が設定できない状況である場合は、
自作のキー入力待ちの処理を設定する必要があります。



▼クリック、または何らかのキーが押されたら先へ進む

クリック、または何らかのキーが押された時、処理を先へ進めます。

【イベントコード表示】

■コモンイベント

起動条件:並列実行(常時)

■変数操作: CSelf15[入力可能] = 0 + 0
■ループ開始
|■ウェイト:1 フレーム
|■キー入力:CSelf10[キーコード]キーボード(100〜)
|■キー入力:CSelf11[キーコード2] 8方向 決定(10) キャンセル(11) サブキー(12)
|■変数操作: CSelf10[キーコード] 下限= CSelf11[キーコード2] + 0
|■キー入力:CSelf11[キーコード2] マウス 左クリック(20) 右クリック(21)
|■変数操作: CSelf10[キーコード] 下限= CSelf11[キーコード2] + 0
|■条件分岐(変数): 【1】 CSelf10[キーコード] が 0 と同じ
          【2】 CSelf15[入力可能] が 0 と同じ
          【3】 CSelf10[キーコード] が 1 以上
|-◇分岐: 【1】 [ CSelf10[キーコード] が 0 と同じ ]の場合↓
||■変数操作: CSelf15[入力可能] = 1 + 0
||■
|-◇分岐: 【2】 [ CSelf15[入力可能] が 0 と同じ ]の場合↓
||■
|-◇分岐: 【3】 [ CSelf10[キーコード] が 1 以上 ]の場合↓
||■デバッグ文:キーコード「\cself[10]」を押した
||■ループ中断
||■
|◇分岐終了◇
|■
◇ループここまで◇◇



▼処理を止めずにクリックを1回だけ実行

キーボードの入力では、セルフ変数[入力可能]を用意して処理していましたが、
クリックの場合は【変数操作+】の…
■変数操作+: CSelf10[クリック] = マウス左クリック状態
を使って設定すれば、セルフ変数[入力可能]を用意しなくても、
クリックした最初の1回だけイベントを実行させる事ができます。

【イベントコード表示】

■コモンイベント

起動条件:並列実行(常時)

■変数操作+: CSelf10[クリック] = マウス左クリック状態
■条件分岐(変数): 【1】 CSelf10[クリック] が 2 と同じ
-◇分岐: 【1】 [ CSelf10[クリック] が 2 と同じ ]の場合↓
|■デバッグ文:クリックした
|■
◇分岐終了◇


▲トップへ戻る▲


  
「キー入力受け付け」
■【使用例】「キーが押されるまで待つ」を使わずに
      システム変数[15][16]を使った方向キーの【キー入力】の処理を設定


イベントコマンド【選択肢】にて上下キーを押し続けるとカーソルが移動し続けますが、
この押し続けによるカーソルの移動では、カーソルが1つ移動した後に暫くウェイトが発生してから2つ目へ移動し、
2つ目以降も短いウェイトが発生しながらカーソルが移動していきます。

▼イベントコマンド【選択肢】の表示例


この【選択肢】のカーソル移動のウェイトは、
システム変数[15:方向キーリピート初ウェイト(フレーム数指定)]と、
システム変数[16:方向キーリピート次ウェイト(フレーム数指定)]で設定されており…
【1】カーソル移動
【2】システム変数[15]のウェイト
【3】カーソル移動
【4】システム変数[16]のウェイト
【5】【3】へ戻る
と言った処理の流れでカーソルが移動していきます。

このシステム変数[15][16]を使ったウェイトは、
【キー入力】で「キーが押されるまで待つ」を設定した方向キーの処理でも実行されますが、
キーが押されるまで待つ」を設定しない場合は、自作でウェイト処理を設定する必要があります。



以下の処理は、上下キーを押し続けた時にシステム変数[15][16]のウェイトを使って、
カーソル番号が変動するイベント処理の設定例です。



【イベントコード表示】【コモン出力ファイル】

■コモンイベント「方向キー押し続けテスト」

起動条件:並列実行(常時)

▼ サブキー(Shiftキー)を押すと、処理が開始します。
■キー入力:CSelf11[キーコード][入力待ち] サブキー(12)
■条件分岐(変数): 【1】 Sys13:イベント実行中?(1=ON) が 1 と同じ
-◇分岐: 【1】 [ Sys13:イベント実行中?(1=ON) が 1 と同じ ]の場合↓
|■イベント処理中断
|■
◇分岐終了◇
■キー入力禁止/許可: 決定 サブ ↓キー ←キー →キー ↑キー [ 移動時× キー入力○ ]
■キー入力禁止/許可: キャンセル [ 移動時× キー入力× ]
■変数操作: CSelf10[カーソル位置]〜CSelf13[押し続け:時間] = 0 + 0
■変数操作: CSelf15[サブキー押し続け] = 1 + 0
■変数操作: CSelf20[sys15+1] = Sys15:方向キーリピート初ウェイト(フレーム数指定) + 1
■変数操作: CSelf21[sys16+sys15+1] = CSelf20[sys15+1] + Sys16:方向キーリピート次ウェイト(フレーム数指定)
■変数操作: CSelf22[文字サイズ] = Sys8:基本フォントサイズ + 0
■変数操作: [実] CSelf22[文字サイズ] *= 3 / 2
■ピクチャ表示:2 [左下]文字列[\E※上下キー押し続けでカーソル] X:0 Y:Sys117:[読]画面サイズY /
       0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ループ開始
|■ピクチャ表示:1 [左上]文字列[\f[\cself[22]]\E] X:2 Y:2 / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■ウェイト:1 フレーム
|■キー入力:CSelf11[キーコード] 上下(8,2) サブキー(12)
|■条件分岐(変数): 【1】 CSelf11[キーコード] が 12 と同じ
|-◇分岐: 【1】 [ CSelf11[キーコード] が 12 と同じ ]の場合↓
||■条件分岐(変数): 【1】 CSelf15[サブキー押し続け] が 1 と同じ
||-◇分岐: 【1】 [ CSelf15[サブキー押し続け] が 1 と同じ ]の場合↓
|||■ループ開始へ戻る
|||■
||◇分岐終了◇
||■ループ中断
||■
|◇分岐終了◇
|■変数操作: CSelf15[サブキー押し続け] = 0 + 0
|■条件分岐(変数): 【1】 CSelf11[キーコード] が CSelf12[押し続け:キーコード] 以外
|-◇分岐: 【1】 [ CSelf11[キーコード] が CSelf12[押し続け:キーコード] 以外 ]の場合↓
||■変数操作: CSelf12[押し続け:キーコード] = CSelf11[キーコード] + 0
||■変数操作: CSelf13[押し続け:時間] = 0 + 0
||■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf11[キーコード] が 1 以上
|-◇分岐: 【1】 [ CSelf11[キーコード] が 1 以上 ]の場合↓
||■変数操作: CSelf13[押し続け:時間] += 1 + 0
||■条件分岐(変数): 【1】 CSelf13[押し続け:時間] が 1 と同じ
          【2】 CSelf13[押し続け:時間] が CSelf20[sys15+1] と同
          【3】 CSelf13[押し続け:時間] が CSelf21[sys16+sys15+1] 以上
||-◇分岐: 【1】 [ CSelf13[押し続け:時間] が 1 と同じ ]の場合↓
|||■
||-◇分岐: 【2】 [ CSelf13[押し続け:時間] が CSelf20[sys15+1] と同じ ]の場合↓
|||■
||-◇分岐: 【3】 [ CSelf13[押し続け:時間] が CSelf21[sys16+sys15+1] 以上 ]の場合↓
|||■変数操作: CSelf13[押し続け:時間] = CSelf20[sys15+1] + 0
|||■
||-◇上記以外
|||■変数操作: CSelf11[キーコード] = 0 + 0
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf11[キーコード] が 2 と同じ
          【2】 CSelf11[キーコード] が 8 と同じ
|-◇分岐: 【1】 [ CSelf11[キーコード] が 2 と同じ ]の場合↓
||■変数操作: CSelf10[カーソル位置] += 1 + 0
||■
|-◇分岐: 【2】 [ CSelf11[キーコード] が 8 と同じ ]の場合↓
||■変数操作: CSelf10[カーソル位置] -= 1 + 0
||■
|◇分岐終了◇
|■
◇ループここまで◇◇
■ピクチャ消去:1 〜 2 / 0(0)フレーム
■キー入力禁止/許可: 決定 キャンセル サブ ↓キー ←キー →キー ↑キー [ 移動時○ キー入力○ ]

メニュー画面にある「システム設定」の「キーリピート速度」の設定を変えると、
システム変数[15][16]の設定値が変わります。





マウス操作でシステム変数[15][16]の値が変えられる動作テスト用の処理も用意しています。



【イベントコード表示】【コモン出力ファイル】

■コモンイベント「方向キー押し続けテスト」

起動条件:並列実行(常時)

▼ サブキー(Shiftキー)を押すと、処理が開始します。
■キー入力:CSelf11[キーコード][入力待ち] サブキー(12)
■条件分岐(変数): 【1】 Sys13:イベント実行中?(1=ON) が 1 と同じ
-◇分岐: 【1】 [ Sys13:イベント実行中?(1=ON) が 1 と同じ ]の場合↓
|■イベント処理中断
|■
◇分岐終了◇
■キー入力禁止/許可: 決定 サブ ↓キー ←キー →キー ↑キー [ 移動時× キー入力○ ]
■キー入力禁止/許可: キャンセル [ 移動時× キー入力× ]
■変数操作: CSelf10[カーソル位置]〜CSelf13[押し続け:時間] = 0 + 0
■変数操作: CSelf15[サブキー押し続け] = 1 + 0
■変数操作: CSelf20[sys15+1] = Sys15:方向キーリピート初ウェイト(フレーム数指定) + 1
■変数操作: CSelf21[sys16+sys15+1] = CSelf20[sys15+1] + Sys16:方向キーリピート次ウェイト(フレーム数指定)
■変数操作: CSelf22[文字サイズ] = Sys8:基本フォントサイズ + 0
■変数操作: [実] CSelf22[文字サイズ] *= 3 / 2
■ピクチャ表示:1 [左下]文字列[\E※上下キー押し続けでカーソル] X:0 Y:Sys117:[読]画面サイズY /
       0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■変数操作: CSelf33[Y位置] = 2 + 0
■ピクチャ表示:2 [左上]文字列[\f[\cself[22]]\E] X:2 Y:CSelf33[Y位置] / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■変数操作+: CSelf33[Y位置] += ピクチャ:2 の 画像サイズ(縦)
■変数操作: CSelf33[Y位置] += 6 + 0
■ピクチャ表示:3 [左上]文字列[\f[\cself[22]]\E] X:2 Y:CSelf33[Y位置] / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■変数操作+: CSelf33[Y位置] += ピクチャ:3 の 画像サイズ(縦)
■変数操作: CSelf33[Y位置] += 6 + 0
■ピクチャ表示:4 [左上]文字列[ ] X:2 Y:CSelf33[Y位置] / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ループ開始
|■ピクチャ表示:4 [左上]文字列[\f[\cself[22]]\E]相対X:0 Y:0 / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■ウェイト:1 フレーム
|■回数付きループ [ 1 ]回
||■変数操作+: CSelf34[重なっているチェック] = ピクチャ:2 の マウス重なってる?(1=YES)
||■条件分岐(変数): 【1】 CSelf34[重なっているチェック] が 1 と同じ
||-◇分岐: 【1】 [ CSelf34[重なっているチェック] が 1 と同じ ]の場合↓
|||■変数操作+: CSelf30[左クリック] = マウス左クリック状態
|||■変数操作+: CSelf31[右クリック] = マウス右クリック状態
|||■変数操作+: CSelf32[ホイール] = マウスホイール変化
|||■条件分岐(変数): 【1】 CSelf30[左クリック] が 1 以上
           【2】 CSelf31[右クリック] が 1 以上
           【3】 CSelf32[ホイール] が 0 以外
|||-◇分岐: 【1】 [ CSelf30[左クリック] が 1 以上 ]の場合↓
||||■変数操作: CSelf35[押し続け:クリック] 下限= 0 + 0
||||■変数操作: CSelf35[押し続け:クリック] += 1 + 0
||||■条件分岐(変数): 【1】 CSelf35[押し続け:クリック] が 1 と同じ
||||-◇分岐: 【1】 [ CSelf35[押し続け:クリック] が 1 と同じ ]の場合↓
|||||■変数操作: Sys15:方向キーリピート初ウェイト(フレーム数指定) += 1 + 0
|||||■変数操作: CSelf36[押し続け:クリック回数] += 1 + 0
|||||■
||||◇分岐終了◇
||||■
|||-◇分岐: 【2】 [ CSelf31[右クリック] が 1 以上 ]の場合↓
||||■変数操作: CSelf35[押し続け:クリック] 上限= 0 + 0
||||■変数操作: CSelf35[押し続け:クリック] -= 1 + 0
||||■条件分岐(変数): 【1】 CSelf35[押し続け:クリック] が -1 と同じ
||||-◇分岐: 【1】 [ CSelf35[押し続け:クリック] が -1 と同じ ]の場合↓
|||||■変数操作: Sys15:方向キーリピート初ウェイト(フレーム数指定) -= 1 + 0
|||||■変数操作: CSelf36[押し続け:クリック回数] += 1 + 0
|||||■
||||◇分岐終了◇
||||■
|||-◇分岐: 【3】 [ CSelf32[ホイール] が 0 以外 ]の場合↓
||||■変数操作: Sys15:方向キーリピート初ウェイト(フレーム数指定) -= CSelf32[ホイール] + 0
||||■変数操作: CSelf35[押し続け:クリック]〜CSelf36[押し続け:クリック回数] = 0 + 0
||||■
|||-◇上記以外
||||■変数操作: CSelf35[押し続け:クリック]〜CSelf36[押し続け:クリック回数] = 0 + 0
||||■
|||◇分岐終了◇
|||■変数操作: CSelf35[押し続け:クリック] %= 18 + 0
|||■条件分岐(変数): 【1】 CSelf36[押し続け:クリック回数] が 3 以上
|||-◇分岐: 【1】 [ CSelf36[押し続け:クリック回数] が 3 以上 ]の場合↓
||||■変数操作: CSelf35[押し続け:クリック] %= 6 + 0
||||■
|||◇分岐終了◇
|||■変数操作: Sys15:方向キーリピート初ウェイト(フレーム数指定) 下限= 1 + 0
|||■変数操作: Sys15:方向キーリピート初ウェイト(フレーム数指定) 上限= 99 + 0
|||■変数操作: CSelf20[sys15+1] = Sys15:方向キーリピート初ウェイト(フレーム数指定) + 1
|||■変数操作: CSelf21[sys16+sys15+1] = CSelf20[sys15+1] + Sys16:方向キーリピート次ウェイト(フレーム数指定)
|||■ピクチャ表示:2 [左上]文字列[\f[\cself[22]]\E]相対X:0 Y:0 / 0(0)フレーム /
        パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[0] G[100] B[100]
|||■ピクチャ移動:3 相対X:0 Y:0 / 0(0)フレーム / パターン 同値 / 透 同値 /
        表示形式:同値 / 角 同値 / 拡 同値 / カラー R[100] G[100] B[100]
|||■ループ中断
|||■
||-◇上記以外
|||■ピクチャ移動:2 相対X:0 Y:0 / 0(0)フレーム / パターン 同値 / 透 同値 /
        表示形式:同値 / 角 同値 / 拡 同値 / カラー R[100] G[100] B[100]
|||■
||◇分岐終了◇
||■変数操作+: CSelf34[重なっているチェック] = ピクチャ:3 の マウス重なってる?(1=YES)
||■条件分岐(変数): 【1】 CSelf34[重なっているチェック] が 1 と同じ
||-◇分岐: 【1】 [ CSelf34[重なっているチェック] が 1 と同じ ]の場合↓
|||■変数操作+: CSelf30[左クリック] = マウス左クリック状態
|||■変数操作+: CSelf31[右クリック] = マウス右クリック状態
|||■変数操作+: CSelf32[ホイール] = マウスホイール変化
|||■条件分岐(変数): 【1】 CSelf30[左クリック] が 1 以上
           【2】 CSelf31[右クリック] が 1 以上
           【3】 CSelf32[ホイール] が 0 以外
|||-◇分岐: 【1】 [ CSelf30[左クリック] が 1 以上 ]の場合↓
||||■変数操作: CSelf35[押し続け:クリック] 下限= 0 + 0
||||■変数操作: CSelf35[押し続け:クリック] += 1 + 0
||||■条件分岐(変数): 【1】 CSelf35[押し続け:クリック] が 1 と同じ
||||-◇分岐: 【1】 [ CSelf35[押し続け:クリック] が 1 と同じ ]の場合↓
|||||■変数操作: Sys16:方向キーリピート次ウェイト(フレーム数指定) += 1 + 0
|||||■変数操作: CSelf36[押し続け:クリック回数] += 1 + 0
|||||■
||||◇分岐終了◇
||||■
|||-◇分岐: 【2】 [ CSelf31[右クリック] が 1 以上 ]の場合↓
||||■変数操作: CSelf35[押し続け:クリック] 上限= 0 + 0
||||■変数操作: CSelf35[押し続け:クリック] -= 1 + 0
||||■条件分岐(変数): 【1】 CSelf35[押し続け:クリック] が -1 と同じ
||||-◇分岐: 【1】 [ CSelf35[押し続け:クリック] が -1 と同じ ]の場合↓
|||||■変数操作: Sys16:方向キーリピート次ウェイト(フレーム数指定) -= 1 + 0
|||||■変数操作: CSelf36[押し続け:クリック回数] += 1 + 0
|||||■
||||◇分岐終了◇
||||■
|||-◇分岐: 【3】 [ CSelf32[ホイール] が 0 以外 ]の場合↓
||||■変数操作: Sys16:方向キーリピート次ウェイト(フレーム数指定) -= CSelf32[ホイール] + 0
||||■変数操作: CSelf35[押し続け:クリック]〜CSelf36[押し続け:クリック回数] = 0 + 0
||||■
|||-◇上記以外
||||■変数操作: CSelf35[押し続け:クリック]〜CSelf36[押し続け:クリック回数] = 0 + 0
||||■
|||◇分岐終了◇
|||■変数操作: CSelf35[押し続け:クリック] %= 18 + 0
|||■条件分岐(変数): 【1】 CSelf36[押し続け:クリック回数] が 3 以上
|||-◇分岐: 【1】 [ CSelf36[押し続け:クリック回数] が 3 以上 ]の場合↓
||||■変数操作: CSelf35[押し続け:クリック] %= 6 + 0
||||■
|||◇分岐終了◇
|||■変数操作: Sys16:方向キーリピート次ウェイト(フレーム数指定) 下限= 1 + 0
|||■変数操作: Sys16:方向キーリピート次ウェイト(フレーム数指定) 上限= 99 + 0
|||■変数操作: CSelf20[sys15+1] = Sys15:方向キーリピート初ウェイト(フレーム数指定) + 1
|||■変数操作: CSelf21[sys16+sys15+1] = CSelf20[sys15+1] + Sys16:方向キーリピート次ウェイト(フレーム数指定)
|||■ピクチャ表示:3 [左上]文字列[\f[\cself[22]]\E]相対X:0 Y:0 / 0(0)フレーム / パターン 1 /
        透 255 / 通常 / 角 0 / 拡 100% / カラー R[0] G[100] B[100]
|||■ループ中断
|||■
||-◇上記以外
|||■ピクチャ移動:3 相対X:0 Y:0 / 0(0)フレーム / パターン 同値 / 透 同値 /
        表示形式:同値 / 角 同値 / 拡 同値 / カラー R[100] G[100] B[100]
|||■
||◇分岐終了◇
||■変数操作: CSelf35[押し続け:クリック]〜CSelf36[押し続け:クリック回数] = 0 + 0
||■
|◇ループここまで◇◇
|■キー入力:CSelf11[キーコード] 上下(8,2) サブキー(12)
|■条件分岐(変数): 【1】 CSelf11[キーコード] が 12 と同じ
|-◇分岐: 【1】 [ CSelf11[キーコード] が 12 と同じ ]の場合↓
||■条件分岐(変数): 【1】 CSelf15[サブキー押し続け] が 1 と同じ
||-◇分岐: 【1】 [ CSelf15[サブキー押し続け] が 1 と同じ ]の場合↓
|||■ループ開始へ戻る
|||■
||◇分岐終了◇
||■ループ中断
||■
|◇分岐終了◇
|■変数操作: CSelf15[サブキー押し続け] = 0 + 0
|■条件分岐(変数): 【1】 CSelf11[キーコード] が CSelf12[押し続け:キーコード] 以外
|-◇分岐: 【1】 [ CSelf11[キーコード] が CSelf12[押し続け:キーコード] 以外 ]の場合↓
||■変数操作: CSelf12[押し続け:キーコード] = CSelf11[キーコード] + 0
||■変数操作: CSelf13[押し続け:時間] = 0 + 0
||■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf11[キーコード] が 1 以上
|-◇分岐: 【1】 [ CSelf11[キーコード] が 1 以上 ]の場合↓
||■変数操作: CSelf13[押し続け:時間] += 1 + 0
||■条件分岐(変数): 【1】 CSelf13[押し続け:時間] が 1 と同じ
          【2】 CSelf13[押し続け:時間] が CSelf20[sys15+1] と同じ
          【3】 CSelf13[押し続け:時間] が CSelf21[sys16+sys15+1] 以上
||-◇分岐: 【1】 [ CSelf13[押し続け:時間] が 1 と同じ ]の場合↓
|||■
||-◇分岐: 【2】 [ CSelf13[押し続け:時間] が CSelf20[sys15+1] と同じ ]の場合↓
|||■
||-◇分岐: 【3】 [ CSelf13[押し続け:時間] が CSelf21[sys16+sys15+1] 以上 ]の場合↓
|||■変数操作: CSelf13[押し続け:時間] = CSelf20[sys15+1] + 0
|||■
||-◇上記以外
|||■変数操作: CSelf11[キーコード] = 0 + 0
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf11[キーコード] が 2 と同じ
          【2】 CSelf11[キーコード] が 8 と同じ
|-◇分岐: 【1】 [ CSelf11[キーコード] が 2 と同じ ]の場合↓
||■変数操作: CSelf10[カーソル位置] += 1 + 0
||■
|-◇分岐: 【2】 [ CSelf11[キーコード] が 8 と同じ ]の場合↓
||■変数操作: CSelf10[カーソル位置] -= 1 + 0
||■
|◇分岐終了◇
|■
◇ループここまで◇◇
■ピクチャ消去:1 〜 4 / 0(0)フレーム
■キー入力禁止/許可: 決定 キャンセル サブ ↓キー ←キー →キー ↑キー [ 移動時○ キー入力○ ]


▲トップへ戻る▲


  
「自動キー入力」
■【使用例】キーボード入力を強制終了させる

イベントコマンド【文字列操作】にある【キーボード入力】を使い、プレイヤーに文字を入力してもらう際、
一定時間後に入力処理を強制終了させるイベントの設定方法を紹介します。





強制終了の方法は2種類あり、「Enter」か「Esc」のどちらかを選択してください。

▼「Enter」で強制終了
「あいう」を入力している時に強制終了した場合は、文字列変数には「あいう」が設定されます。

▼「Esc」で強制終了
「あいう」を入力している時に強制終了した場合は、文字列変数には何も文字列が設定されません。

なお「Esc」で強制終了させる場合は、
【キーボード入力】にある「キャンセル有」にチェックを入れてください。



時間の設定は、通常変数か予備変数を使って行います。
設定例では「予備変数1」の「0番」を使用しています。

時間は1フレーム単位でカウントするため、「1秒=60」で設定します。
5秒後に強制終了させる場合は、変数には「300」を設定します。



【キーボード入力】の強制終了を行うイベントはコモンイベントに設定してください。

▼「Enter」で強制終了
【イベントコード表示】【コモン出力ファイル】

■コモンイベント「キーボード入力強制終了」

起動条件:並列実行
起動条件変数:「V1-0:入力制限時間」が「1」「以上」

■ループ開始
|■ウェイト:1 フレーム
|■変数操作: V1-0[入力制限時間] -= 1 + 0
|■条件分岐(変数): 【1】 V1-0[入力制限時間] が 0 と同じ
          【2】 V1-0[入力制限時間] が -1 以下
|-◇分岐: 【1】 [ V1-0[入力制限時間] が 0 と同じ ]の場合↓
||▼ [Enter]を実行して強制終了
||■自動キー入力: キーボード入力 コード[ 128 ] ( Enterキー )
||■ループ中断
||■
|-◇分岐: 【2】 [ V1-0[入力制限時間] が -1 以下 ]の場合↓
||▼ プレイヤーが[Enter]を押して入力を終了させた
||■ループ中断
||■
|◇分岐終了◇
|■
◇ループここまで◇◇
■変数操作: V1-0[入力制限時間] = 0 + 0

▼「Esc」で強制終了
【イベントコード表示】【コモン出力ファイル】

■コモンイベント「キーボード入力強制終了」

起動条件:並列実行
起動条件変数:「V1-0:入力制限時間」が「1」「以上」

■ループ開始
|■ウェイト:1 フレーム
|■変数操作: V1-0[入力制限時間] -= 1 + 0
|■条件分岐(変数): 【1】 V1-0[入力制限時間] が 0 と同じ
          【2】 V1-0[入力制限時間] が -1 以下
|-◇分岐: 【1】 [ V1-0[入力制限時間] が 0 と同じ ]の場合↓
||▼ [Esc]を実行して強制終了
||■自動キー入力: キーボード入力 コード[ 101 ] ( ESCキー )
||■ループ中断
||■
|-◇分岐: 【2】 [ V1-0[入力制限時間] が -1 以下 ]の場合↓
||▼ プレイヤーが[Enter]を押して入力を終了させた
||■ループ中断
||■
|◇分岐終了◇
|■
◇ループここまで◇◇
■変数操作: V1-0[入力制限時間] = 0 + 0



【キーボード入力】を実行するイベントは以下のように設定します。
※入力制限時間が「2秒間(120フレーム)」の場合。

【イベントコード表示】

■変数操作: V1-0[入力制限時間] = 120 + 0
■文字列操作:S0[] = キーボード入力 10文字 [キャンセル可]
■変数操作: V1-0[入力制限時間] = 0 + 0


▲トップへ戻る▲



◎関連ページ

◆「イベントコマンド」って何?
┣◆文章の表示
┃┗◆特殊文字
┣◆選択肢
┃┗◆【使用例】選択肢
┣◆変数操作
┃┗◆演算子について
┣◆DB操作
┣◆文字列操作
┃┗◆【使用例】文字列操作
┣◆変数操作+
┃┣◆「X座標・Y座標」と「画面X座標・画面Y座標」の違い
┃┣◆【使用例】変数操作+の「キャラ」と「位置」
┃┗◆【使用例】変数操作+の「ピクチャ」と「その他」
┣◆条件(変数)
┣◆条件(文字列)
┣◆キー入力
┃┗◆【使用例】キー入力
┣◆ピクチャ
┃┗◆表示形式(通常・加算・減算・乗算)について
┣◆エフェクト
┃┣◆「Zオーダー」について
┃┗◆【使用例】エフェクト
┣◆サウンド
┣◆セーブ・ロード操作
┣◆パーティ画像
┣◆チップ処理
┃┗◆【使用例】チップ処理
┣◆場所移動
┣◆イベント制御
┃┣◆キャラクターの動作指定
┃┗◆【使用例】イベント制御
┣◆コモンイベント
┣◆ダウンロード
┗◆プロ版機能
 ┗◆起動時の引数について

YADOT-WOLFトップ  気紛れな空間へ戻る  メール