RPGツクール2000/イベントコマンド(フィールド)【サイトトップへ戻る】
キー入力の処理
■同時押しの処理
(更新:2020/06/28)


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


ショートカット
■同時押しの基本
■同時に押されてない時の処理も作る
■同時押し+連続実行禁止


  
■同時押しの基本

イベントコマンド:キー入力の処理では複数のキーのチェックが入っていても、
1つのキーコードしか変数に設定する事ができません。

そのため、下の画像のように決定キー取り消しキーを調べるようにしても、
どちらか1つのキーしか読み取れません。



同時押しに対応させる場合は、
決定キーだけを調べる処理」と
取り消しキーだけを調べる処理」の2つの設定を置き、
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トップ  このサイトは何?  気紛れな空間へ戻る  メール