2Dアクションの空中での慣性について
Posted: 2011年10月24日(月) 18:31
現在,ゲームプログラミングの館様等を参考にさせて頂いて,
2Dのアクションゲーム(マリオ,洞窟物語のような)を作成しております。
その際に,主人公のキャラクタ(自機)に慣性移動をさせたく,
試行錯誤し,地面に接している状態での慣性移動についてはひと通り実装致しましたが,
タイトルの通り空中での慣性移動でどうしても不自然な挙動をしてしまいます。
どのようにすれば自然な空中での慣性移動が行えるでしょうか?
ちなみに現在の方法は,
キャラクターのパラメータに加速度を設定,
1.地面に接しているときには入力に応じて移動速度に加速度を加算(減算)
この時に移動速度が一定の値に達していればそれ以上加速しないようにする。
2.キーもしくはパッドの十字ボタンが離されていれば
速度から加速度を減算(加算)
この時に速度の絶対値が加速度よりも小さければ速度を0に
空中では2.の減速処理を行わずに1.の処理のみを行う。
ただし、加速度/2の値を速度に加算するで地面に接している時よりも動きづらい。
必要であればコードも記載いたしますので,これよりも良い方法,または皆様方が使われているような
方法をお教えいただければ幸いです。乱文失礼致しました。
2Dのアクションゲーム(マリオ,洞窟物語のような)を作成しております。
その際に,主人公のキャラクタ(自機)に慣性移動をさせたく,
試行錯誤し,地面に接している状態での慣性移動についてはひと通り実装致しましたが,
タイトルの通り空中での慣性移動でどうしても不自然な挙動をしてしまいます。
どのようにすれば自然な空中での慣性移動が行えるでしょうか?
ちなみに現在の方法は,
キャラクターのパラメータに加速度を設定,
1.地面に接しているときには入力に応じて移動速度に加速度を加算(減算)
この時に移動速度が一定の値に達していればそれ以上加速しないようにする。
2.キーもしくはパッドの十字ボタンが離されていれば
速度から加速度を減算(加算)
この時に速度の絶対値が加速度よりも小さければ速度を0に
空中では2.の減速処理を行わずに1.の処理のみを行う。
ただし、加速度/2の値を速度に加算するで地面に接している時よりも動きづらい。
必要であればコードも記載いたしますので,これよりも良い方法,または皆様方が使われているような
方法をお教えいただければ幸いです。乱文失礼致しました。