移動速度の変更(同方向に二度押し編)
ゆっくり動かすのと速く動かすのを別々に分けることでキャラクターの動きの幅が広がるので作ってみました。参考程度に。
内容を簡単に説明すると『速度を「ゆっくり」と「走り」にわけて行う』ように設定します。
操作方法は『ボタンを押しながら』でなく、よく見かける『同方向に素早く二度押しする』です。
必要フロー
フロー1 通常移動する
フロー2 ダッシュのキー条件
フロー3 ダッシュ移動する
フロー4 ダッシュの効果を切る
使う変数は1つです。変数内容は「キャラクターの移動速度」です。
(今回は「0」を「ゆっくり」。「1」を「走り」と仮定します)
それぞれの条件説明とその実行時の効果
フロー1 ID:-
基本条件:「0」(ゆっくり)であること。
キー条件:入力方向
コマンド:直線移動
フロー2 ID:A
基本条件:「0」(ゆっくり)であること。
基本条件:入力方向(押)(1~2)
方向キーニュートラル(押)(2~3)
入力方向(押)(1~5)
コマンド:移動方法を「1」にする
ウエイト5
移動方法を「0」にする
フロー3 ID:-
基本条件:「1」(走る)であること。
キー条件:入力方向(押)(1~∞)連続実行
コマンド:IDフローAを終了させる
移動方法を「1」にする
直線移動
フロー4 ID:-
基本条件:「1」(走る)であること。
キー条件:方向キーニュートラル(1~1)
コマンド:移動方法を「0」(ゆっくり)にする
それぞれの説明
フロー1 そのままの意味です。移動方法がゆっくりのときに実行されます
フロー2 これはダッシュを開始するためのコマンドが入力されたかを確認するフローです。
確認されたら5秒間だけダッシュ操作を受け付けるようになり、この時間内に移動したい方向にキーを押すとダッシュするようになります。
時間内に押さなかった場合は「0」(ゆっくり)操作に戻るように設定しています。
なお、フロー2だけ他のフローと違うグループにします。理由はフロー3が実行されたときフロー2を終了しなければならないからです。
フロー3が実行されたとき、フロー2が続いていると、フロー2により強制的に移動方法が「0」に戻されて、「走る」失敗となります。
フロー3 これは実際にダッシュしている際に実行されるフローです。
実行された際はフロー2のみを終了させ、操作が元(「ゆっくり」)に戻ることを防ぎ、そのままダッシュを実行するようになっています。
なお、コマンドにて移動方法を「1」にするとありますが、これは実行している際は「1」の状態を保つために設定しています。
これがあるとダッシュの操作が安定します(そんな気がします:本人談)。
フロー4 ダッシュの効果を切る このフローはダッシュ操作が終わったこと確認すると移動を通常に戻すフローです。
キーを離したとき、ダッシュを終了したとみなし移動方法を「0」に戻します。
補足
フロー1と3で、1は通常時の移動速度、3は走る時の移動速度となっています。
フロー3と4で、入力方向(離)だと時間が(1~∞)に設定されてしまうので、必ず方向キーニュートラルに設定しましよう。
ジャンプ方法が移動と同じ側のキー(矢印と矢印)でも、ちゃんと実行されます。ダッシュジャンプももちろん
※加筆・訂正があればお願いします
※この項目はアントン氏と3S氏の助言があって完成しました。この場を借りてお礼申し上げます。