RPGツクール2000/システム
■ダッシュ処理
(更新:2016/08/13)


決定キーを押し続けると、
2倍の速度で移動できるダッシュイベントの作り方を紹介します。


動作見本用のサンプルデータ
サンプルのダウンロードは↓をクリックしてください。

※このサンプルには雲の影を表示するも設定されています。
※サンプル内のスイッチ・変数の番号は、
 「+20番(変数0001→0021)」で設定しています。
サンプルのイベント設定状況を見る場合は、
ツクールの作品データが入っているフォルダを開いて、
その中にサンプルの作品データを入れてください。
【ツクールのフォルダの開き方を見る】
このサンプルデータのイベント設定をコピー&貼り付けして、
制作中の作品に使用する場合は、
イベントの処理構造を理解した上自己責任でご利用ください。

動作確認用のサンプル内では正常に動いていたイベントが、
制作中の作品にコピー&貼り付けしたら正常に動かなくなった場合は、
明らかにコピー&貼り付けの作業に問題があった事になります。



☆主人公から触れたときの対策
ダッシュするイベントは、
★定期的に並列処理する
◆キー入力の処理:[0001](決定/オプション:OFF)
◆条件分岐:変数[0001]が5
 ◆キャラクターの動作指定:主人公,移動速度アップ×2,移動速度ダウン
 ◆
:それ以外の場合
 ◆キャラクターの動作指定:主人公,移動速度アップ×2,移動速度ダウン×2
 ◆
:分岐終了

と言った処理でも、決定キーを押し続ける事でダッシュする事ができます。

しかしキャラクターの動作指定を実行し続けますと、
主人公から触れたとき(マップイベントと主人公が重なった時)に、
マップイベントが実行しないと言ったトラブルが発生します。

そのようなトラブルを回避するために、
★定期的に並列処理する
◆キー入力の処理:[0001](決定/オプション:OFF)
◆条件分岐:変数[0001]が5
 ◆条件分岐:スイッチ[0001:ダッシュ中]がOFF
  ◆スイッチの操作:[0001:ダッシュ中]をONにする
  ◆キャラクターの動作指定:主人公,移動速度アップ×2,移動速度ダウン
  ◆
 :分岐終了
 ◆
:それ以外の場合
 ◆条件分岐:スイッチ[0001:ダッシュ中]がON
  ◆スイッチの操作:[0001:ダッシュ中]をOFFにする
  ◆キャラクターの動作指定:主人公,移動速度アップ×2,移動速度ダウン×2
  ◆
 :分岐終了
 ◆
:分岐終了

と言ったように、スイッチを使って常にキャラクターの動作指定を実行せず、
決定キーが押された時、または決定キーを離した時のみ、
キャラクターの動作指定を実行する方法で、トラブルを回避する方法が取られますが、
それでもマップイベントと重なる瞬間に、決定キーを押す、または離す事で、
やはり主人公から触れたときが実行されないと言ったトラブルが発生します。

主人公から触れたときが実行されないと言った状態は、
主人公が次のマスへ移動し終える前に、
キャラクターの動作指定を実行した時に発生しているようなので、
次のマスへ主人公が移動し終わった瞬間にキャラクターの動作指定を実行すれば、
主人公から触れたときが実行されないと言ったトラブルを回避する事ができるようです。



☆移動速度の設定
今回は、通常の移動速度は「標準速」、
ダッシュ時の移動速度は「2倍速」とします。

変数[0003:ウェイト]に代入する値は、
2倍速=4
標準速=8

と設定します。

キャラクターの動作指定の設定は、
一度最高速度(4倍速)に変えてから、2倍速標準速に変えますので、
◆キャラクターの動作指定:主人公,移動速度アップ×2,移動速度ダウン
や、
◆キャラクターの動作指定:主人公,移動速度アップ×2,移動速度ダウン×2
と言った設定になっています。



☆スイッチ[0002:キー押し確認]について
『Windows7』や『8』でキーを押し続けてもキー押しが途切れると言った現象があり、
決定キーを押し続けても決定キーが押されている押されていない交互になり、
うまくダッシュ処理が実行できない事があります。

そのため、決定キーを押した時にスイッチ[0002:キー押し確認]をONにし、
決定キーを離した時に本当に決定キーを離したのかをチェックするために、
決定キーを離した1回目は単にスイッチ0002番をOFFにするだけでダッシュ処理は継続させ、
60分の1秒後にもう一度キー入力を確認して、それでも決定キーを離していた時には、
ダッシュ処理を終了させます。



☆ダッシュイベントを設定
ダッシュイベントはコモンイベントに作成してください。

■コモンイベント「ダッシュイベント」
イベント開始条件:定期的に並列処理する
◆変数の操作:[0001:XY]代入,主人公のX座標
◆変数の操作:[0001:XY]乗算,1000
◆変数の操作:[0001:XY]加算,主人公のY座標
◆条件分岐:変数[0001:XY]がV[0002]以外<別のマスへ移動した時
 ◆変数の操作:[0002:XY2]代入,変数[0001]の値
 ◆条件分岐:スイッチ[0001:ダッシュ中]がON(オプション:ON)
  ◆変数の操作:[0003:ウェイト]代入,4<2倍速の1マスを移動する時間を設定
  ◆
 :それ以外の場合
  ◆変数の操作:[0003:ウェイト]代入,8<標準速の1マスを移動する時間を設定
  ◆
 :分岐終了
 ◆
:分岐終了
◆変数の操作:[0003:ウェイト]減算,1
◆条件分岐:変数[0003:ウェイト]が1以上
 ◆イベント処理の中断
 ◆
:分岐終了
◆キー入力の処理:[0004:キー入力](決定/オプション:OFF)
◆条件分岐:変数[0004:キー入力]が5(オプション:ON)
 ◆スイッチの操作:[0001:ダッシュ中]をONにする
 ◆スイッチの操作:[0002:キー押し確認]をONにする
 ◆キャラクターの動作指定:主人公,移動速度アップ×2,移動速度ダウン
 ◆
:それ以外の場合
 ◆条件分岐:スイッチ[0002:キー押し確認]がON
  ◆スイッチの操作:[0002:キー押し確認]をOFFにする
  ◆イベント処理の中断
  ◆
 :分岐終了
 ◆スイッチの操作:[0001:ダッシュ中]をOFFにする
 ◆キャラクターの動作指定:主人公,移動速度アップ×2,移動速度ダウン×2
 ◆
:分岐終了




☆補足
他のイベントで主人公に対するキャラクターの動作指定を実行する場合、
このダッシュイベントのキャラクターの動作指定と混同して、
うまく動かなくなる可能性があります。
他のイベントで主人公に対するキャラクターの動作指定を実行する場合は、
このダッシュイベントを一時的に動かなくする対策が必要になるでしょう。



乗り物に乗っている時にダッシュイベントが実行されないようにしたい時には、
◆キー入力の処理:[0004:キー入力]
のすぐ下に、
◆条件分岐:小型船に乗っている
 ◆変数の操作:[0004:キー入力]代入,0
 ◆
:分岐終了
◆条件分岐:大型船に乗っている
 ◆変数の操作:[0004:キー入力]代入,0
 ◆
:分岐終了
◆条件分岐:飛行船に乗っている
 ◆変数の操作:[0004:キー入力]代入,0
 ◆
:分岐終了

を設定してください。



◎関連ページ
 ●イベントコマンド:キャラクターの動作指定


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