「CorgiEngine」特有の機能のTips。
実際にゲームを作成して直面した、問題の解決法を書き足して行きます。
以下、「ヒップドロップした同色のブロックが跳ねてダメージを与えるシステム」を実装したカスタムゲームの動画。
ダッシュボタンを押したら、ヒップドロップするように改変
*(ヒップドロップ == CharacterDive)
デフォルト設定では、ヒップドロップの出し方が「ジャンプ中に、ジョイスティックを下に入れつつダッシュ」と、中々出し難い。
ヒップドロップを多用するゲームシステムに改変する為に、ダッシュボタンに動作を割り当てた。
ダッシュボタンを押した時にダッシュするのを防ぐ
CharacterDiveは、CharacterDashを使用しているので、単純にCharacterDashを削除するだけでは上手く行かない。
- 適当にCharacterDashを継承したクラスを作って、プレイヤーにアタッチされたCharacterDashと差し替える。
- 以下のように、「InputManagerの状態を読み取ってダッシュを発生させるメソッド」を空に上書きする。
これでダッシュの機能を残しつつ、ダッシュボタンからのインプットを遮断出来る。
//一応、名前空間も設定。どちらでも良い。
namespace MoreMountains.CorgiEngine
{
public class CharacterDashCustom : CharacterDash
{
protected override void HandleInput ()
{
}
}
}
ダッシュボタンを押した時にヒップドロップさせる
- 適当にCharacterDiveを継承したクラスを作って、プレイヤーにアタッチされたCharacterDiveと差し替える。
- 以下のように「ダッシュボタンを押した時」に発動条件を変更。
//一応、名前空間も設定。
namespace MoreMountains.CorgiEngine
{
public class CharacterDiveCustom : CharacterDive
{
protected override void HandleInput()
{
if (_inputManager.DashButton.State.CurrentState == MMInput.ButtonStates.ButtonDown)
{
InitiateDive();
}
}
}
}