今回はゲーム内に重力を加え、自然なジャンプモーションを実装する。
方法としては3通りあるので、それぞれ解説していく。
- 三角関数(sin)を使う
- 月面でジャンプしているようなふんわりしたモーション
- 速度に加速度を足しこむ
- 簡単で自然なジャンプモーション
- 鉛直投げ上げの公式(y = v0t - 0.5gt^2)を使う
- より自然界に近いジャンプモーション
requestAnimationFrameとsetIntervalsetTimeoutには明確な違いがある。requestAnimationFrameはブラウザの状態により実行間隔を自動で調整してくれるのに対し、setIntervalsetTimeoutは時間どおりに実行するため、処理がすべて終わる前に次の処理が実行されてしまう。