ジャンプ

アクションゲームのキモであるジャンプについてメモ書き。
 

デコジャンプ

ジャンプ処理でやっちゃいけないのが、「デコジャンプ」ですね。
「デコジャンプ」とは、
「等速直線運動で上昇し、等速直線運動で落下する」
というものです。
 
なぜやってはいけないのかというと、、、

乗ることのできる地形が赤の点線であるとします。
この場合、そこに乗ることがでるのがほんの1フレームだけになってしまい、
タイミングが非常にシビアになってしまうからです。
 
敵をジャンプでかわす場合には、かなり厳しいですよね。
 
 
「じゃあ、地形はそのラインよりも低くすればいいんじゃないの?」
という方法もあるのですが、そうすると、それにより開いた空間が非常にもったいないです。
 
いずれにせよ、「大味」なゲームになってしまうのは避けられません。
 
 

放物線

通常は、「放物線」を描くような動きを使うことになると思います。
現実においても、「放物線」は自然な動きです。
「放物線」のジャンプを作るには、

  • 速度
  • 初速度
  • 重力加速度

を持たせて、ジャンプ時に、

  1. 速度に初速度を加算
  2. 一定の間隔で重力加速度を加算

という物理計算を使う方法により実装することができます。
 
もう1つ、タイマーとテーブルを使う方法があります。
例えば、

タイマー 0 1〜2 3〜5 6〜9 10〜14 15〜20 21〜27 28〜35 36〜40
速度 8 7 6 5 4 3 2 1 0

というようなテーブルを用意しておいて、
タイマーに対応した速度で移動させる方法です。
この方法のメリットは細かい制御が可能になるので、
安定したジャンプの動きが可能になります。
デメリットは、物理計算に比べてやや不自然な動きをすることです。