RPGツクール2000/イベントコマンド(フィールド)
キー入力の処理
■同時押しの処理
(更新:2015/11/21)


定期的に並列処理するを使って、
2つのキーが同時に押されているかどうかを調べるイベント処理を設定します。



☆同時押しの基本
イベントコマンド:キー入力の処理では複数のキーのチェックが入っていても、
1つのキー番号しか変数の値に設定する事ができません。
そのために下の画像のように決定キー取り消しキーを調べる設定にしても、
どちらか1つのキー番号しか読み取れません。


同時押しを実現するためには、
決定キーだけを調べるキー入力の処理と、
取り消しキーだけを調べるキー入力の処理の2つの設定を行い、
2つのキー入力の処理にキー番号が入っているかどうかを確認して、
同時にキーが押されていると判断させます。

▼設定例
◆メニュー画面禁止の変更:禁止する<並列処理の時には必要です
◆キー入力の処理:[0001:決定キー](決定/オプション:OFF)
◆キー入力の処理:[0002:取り消しキー](取消/オプション:OFF)
◆条件分岐:変数[0001:決定キー]が5
 ◆条件分岐:変数[0002:取り消しキー]が6
  ◆〜同時にキーが押されている時のイベント〜
  ◆
 :分岐終了
 ◆
:分岐終了




☆同時に押されてない時の処理も作る
1つのキーしか押されてない時のイベント処理を作りたい時の設定例です。
◆メニュー画面禁止の変更:禁止する
◆キー入力の処理:[0001:決定キー]
◆キー入力の処理:[0002:取り消しキー]
◆条件分岐:変数[0001:決定キー]が5
 ◆条件分岐:変数[0002:取り消しキー]が6
  ◆〜同時に押されている時のイベント〜
  ◆
 :それ以外の場合
  ◆〜決定キーのみのイベント〜
  ◆
 :分岐終了
 ◆
:それ以外の場合
 ◆条件分岐:変数[0002:取り消しキー]が6
  ◆〜取り消しキーのみのイベント〜
  ◆
 :分岐終了
 ◆
:分岐終了




☆同時押し+連続実行禁止
キーを押し続けても、キー処理が1回だけしか実行しないようにする設定例です。

以下の設定では、60分の3秒だけキー待ちを行い、
その60分の3秒の間に複数のキーが押されたかどうかを判断します。



▼決定・取り消しの2つのキーの場合
◆メニュー画面禁止の変更:禁止する
◆キー入力の処理:[0001:キー入力1](決定・取消/オプション:ON)
◆スイッチの操作:[0001〜0002]をOFFにする
◆変数の操作:[0004:キー待ち時間]代入,0
◆ラベルの設定:1番
◆キー入力の処理:[0002:キー入力2 決定](決定/オプション:OFF)
◆キー入力の処理:[0003:キー入力2 取り消し](取消/オプション:OFF)
◆変数の操作:[0004:キー待ち時間]加算,1
◆条件分岐:変数[0004:キー待ち時間]が3以下
 ◆条件分岐:変数[0002:キー入力2 決定]が5
  ◆スイッチの操作:[0001:決定キー押し]をONにする
  ◆
 :分岐終了
 ◆条件分岐:変数[0003:キー入力2 取消]が6
  ◆スイッチの操作:[0002:取り消しキー押し]をONにする
  ◆
 :分岐終了
 ◆ウェイト:0.0秒
 ◆指定ラベルへ飛ぶ:1番
 ◆
:分岐終了
◆条件分岐:スイッチ[0001:決定キー押し]がON
 ◆条件分岐:スイッチ[0002:取り消しキー押し]がON
  ◆〜決定+取り消しキーのイベント〜
  ◆
 :それ以外の場合
  ◆〜決定キーのみのイベント〜
  ◆
 :分岐終了
 ◆
:それ以外の場合
 ◆〜取り消しキーのみのイベント〜
 ◆
:分岐終了




▼決定・取り消し・Shiftのいずれかのキーが押された場合
◆メニュー画面禁止の変更:禁止する
◆キー入力の処理:[0001:キー入力1](決定・取消・Shift/オプション:ON)
◆スイッチの操作:[0001〜0003]をOFFにする
◆変数の操作:[0005:キー待ち時間]代入,0
◆ラベルの設定:1番
◆キー入力の処理:[0002:キー入力2 決定](決定/オプション:OFF)
◆キー入力の処理:[0003:キー入力2 取り消し](取消/オプション:OFF)
◆キー入力の処理:[0004:キー入力2 Shift](Shift/オプション:OFF)
◆変数の操作:[0005:キー待ち時間]加算,1
◆条件分岐:変数[0005:キー待ち時間]が3以下
 ◆条件分岐:変数[0002:キー入力2 決定]が5
  ◆スイッチの操作:[0001:決定キー押し]をONにする
  ◆
 :分岐終了
 ◆条件分岐:変数[0003:キー入力2 取消]が6
  ◆スイッチの操作:[0002:取り消しキー押し]をONにする
  ◆
 :分岐終了
 ◆条件分岐:変数[0004:キー入力2 Shift]が7
  ◆スイッチの操作:[0003:Shiftキー押し]をONにする
  ◆
 :分岐終了
 ◆ウェイト:0.0秒
 ◆指定ラベルへ飛ぶ:1番
 ◆
:分岐終了
◆条件分岐:スイッチ[0001:決定キー押し]がON
 ◆条件分岐:スイッチ[0002:取り消しキー押し]がON
  ◆条件分岐:スイッチ[0003:Shiftキー押し]がON
   ◆〜決定+取り消し+Shiftキーのイベント〜
   ◆
  :それ以外の場合
   ◆〜決定+取り消しキーのイベント〜
   ◆
  :分岐終了
  ◆
 :それ以外の場合
  ◆条件分岐:スイッチ[0003:Shiftキー押し]がON
   ◆〜決定+Shiftキーのイベント〜
   ◆
  :それ以外の場合
   ◆〜決定キーのみのイベント〜
   ◆
  :分岐終了
  ◆
 :分岐終了
 ◆
:それ以外の場合
 ◆条件分岐:スイッチ[0002:取り消しキー押し]がON
  ◆条件分岐:スイッチ[0003:Shiftキー押し]がON
   ◆〜取り消し+Shiftキーのイベント〜
   ◆
  :それ以外の場合
   ◆〜取り消しキーのみのイベント〜
   ◆
  :分岐終了
  ◆
 :それ以外の場合
  ◆〜Shiftキーのみのイベント〜
  ◆
 :分岐終了
 ◆
:分岐終了




◎関連ページ
 ●イベントコマンド:キー入力の処理
 ○自作キー待ち設定
 ┗
○キー押し続けの不具合対策


YADOTトップ  このサイトは何?  気紛れな空間へ戻る  メール