blankダッシュ移動をできるようにする

ダッシュ移動をできるようにする

あるキーを押すと、プレーヤーの歩行スピードが速くなってダッシュすることができる・・・という機能を持ったRPGがよくあります。

ここでは、そのダッシュ機能をつけるための方法を、以下の二通りに分けて解説します。

  • キーを押すことで、歩きと走りのモードを切り替える(以下トグルタイプ
  • キーを押しっぱなしにしている間だけ、走りモードにする(以下ホールドタイプ

なお、下に示したサンプルには、次のスイッチと変数が使われています。

スイッチ
ダッシュモード(OFF・・・歩きモード・ON・・・走りモード を示す)
変数
キー番号(「キー入力の処理」でキー番号を受ける変数)

トグルタイプ

まずは、処理の流れを説明します。

まずは、キーを押されたことを感知するまでイベントを待機させます。キーが押されたことを感知したら、次に進ませます。

その次とは、今の状態(歩きか走りか)をモードスイッチの条件分岐で判断することです。もし、今歩いている場合は、走り状態に変更します。もし、今走っている場合は、歩き状態に変更します。

その後、スピードを「キャラクターの指定動作」で変更し、スイッチを切り替えます(変更の処理)。

そして終わりです。あとは先頭に戻って繰り返すだけです。

これをコモンイベントに組んでみましょう。

[イベント開始条件] 定期的に並列処理する・[出現条件スイッチ] 適当に

◆キー入力の処理:[0001:キー番号]
(オプションのチェックボックスをONにして、入力許可キーを適当なものに変更を)
◆条件分岐:スイッチ[0001:ダッシュモード]がON
 ◆キャラクターの指定動作:主人公, 移動速度ダウン
 ◆指定動作の全実行
 ◆
:それ以外の場合
 ◆キャラクターの指定動作:主人公, 移動速度アップ
 ◆指定動作の全実行
 ◆
:分岐終了
◆スイッチの操作:[0001:ダッシュモード]のON/OFFを逆転させる

これで、キーを押すたびに、歩きと走りが切り替わります。

ホールドタイプ

処理の流れは次のとおりです。

まずは、どのキーが押されているかを調べて番号を変数に代入します。待機はせず、先に進みます。

そして条件分岐で、ダッシュ用のキーが押されていたか、それとも別のキーが押されていたか押されていなかったか、判断します。

もしダッシュ用のキーが押されていた場合は、次に今が歩き状態か調べます。もし、歩き状態の場合は、走り状態に変更します。もし、ダッシュ用以外のキーが押されていた場合、もしくは何も押されていない場合は、今が走り状態か調べます。もし、走り状態ならば、歩き状態に戻します。

あとは「イベントでかかる負担を軽くする」Tipsで解説した「0.0秒」を入れて負担を軽くして、先頭に戻って繰り返します。

これをコモンイベントに組んでみましょう。

[イベント開始条件] 定期的に並列処理する・[出現条件スイッチ] 適当に

◆キー入力の処理:[0001:キー番号]
(オプションのチェックボックスをOFFにして、入力許可キーは全てONにし、変数も適切なものを)
◆条件分岐:変数[0001:キー番号]が7
(ここで対象のキーを設定する。5は決定キー、6はキャンセルキー、7はShiftキーになる)
 ◆条件分岐:スイッチ[0001:ダッシュモード]がOFF
   ◆スイッチの操作:[0001:ダッシュモード]をONにする
  ◆キャラクターの指定動作:主人公, 移動速度アップ
  ◆指定動作の全実行
  ◆
 :分岐終了
:それ以外の場合
 ◆条件分岐:スイッチ[0001:ダッシュモード]がON
   ◆スイッチの操作:[0001:ダッシュモード]をOFFにする
  ◆キャラクターの指定動作:主人公, 移動速度ダウン
  ◆指定動作の全実行
  ◆
 :分岐終了
 ◆
:分岐終了
◆ウェイト:0.0秒

これで、キーを押している間だけ、走り状態になります。

なお、上記のイベントのキー入力の処理で、カーソルキーとShiftキーを一緒に押しているとどっちが優先されて変数に代入されるのか不思議になりますが、Shiftキーの方が優先されて代入されるようです。RPGツクール2000上の仕様と思われます。

ダッシュ移動をできるようにする サンプルのダウンロード

今回のTipsの完成プロジェクトがダウンロードできます。以下のリンクをクリックしてダウンロードし、解凍して下さい。

プレイ方法

Shiftキーを押す事で、切り替えタイプで歩き走りすることができます。中央にいる人に話しかけると、ホールドタイプに切り替える事も出来ます。

xl_rpg_tips5.zip | 377.01kB