ジャンプ
アクションゲームのキモであるジャンプについてメモ書き。
デコジャンプ
ジャンプ処理でやっちゃいけないのが、「デコジャンプ」ですね。
「デコジャンプ」とは、
「等速直線運動で上昇し、等速直線運動で落下する」
というものです。
なぜやってはいけないのかというと、、、
乗ることのできる地形が赤の点線であるとします。
この場合、そこに乗ることがでるのがほんの1フレームだけになってしまい、
タイミングが非常にシビアになってしまうからです。
敵をジャンプでかわす場合には、かなり厳しいですよね。
「じゃあ、地形はそのラインよりも低くすればいいんじゃないの?」
という方法もあるのですが、そうすると、それにより開いた空間が非常にもったいないです。
いずれにせよ、「大味」なゲームになってしまうのは避けられません。
放物線
通常は、「放物線」を描くような動きを使うことになると思います。
現実においても、「放物線」は自然な動きです。
「放物線」のジャンプを作るには、
- 速度
- 初速度
- 重力加速度
を持たせて、ジャンプ時に、
- 速度に初速度を加算
- 一定の間隔で重力加速度を加算
という物理計算を使う方法により実装することができます。
もう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 |
というようなテーブルを用意しておいて、
タイマーに対応した速度で移動させる方法です。
この方法のメリットは細かい制御が可能になるので、
安定したジャンプの動きが可能になります。
デメリットは、物理計算に比べてやや不自然な動きをすることです。