-1

AS3 を使用して Flash ゲームを作成しようとしています。私はプログラミングの初心者です。私が抱えている問題は、ゲームのジャンプと重力の仕組みに関係しています。

現在、アップ キーは、キャラクターがダウンしている場合、キャラクターを上に移動させます (20 ピクセル/フレームの速度)。上キーが押されていない場合、キャラクターは上への移動を停止します。キャラクターが地面から離れている場合は、重力も作用します。キャラクターが地面から離れている場合、重力変数 (元は 0) はフレームごとに (1.5) ずつ増加します。重力変数は、地面に引き寄せられるまでキャラクターに反作用を及ぼします。地上では、重力変数は 0 に戻ります。

これはかなりうまくいきます。ただし、アップキーが常に押されている場合にのみ、スムーズでカーブのようなジャンプが可能です。そうしないと、アップキーを放すとすぐに倒れてしまいます。ジャンプを押し下げキージャンプからタップキージャンプに変更することで、これを修正できることを私は知っています。しかし、私はそれをしたくありません。

TL;DR 完璧なパラボリック ジャンプがしたい!

4

1 に答える 1

2

これは少し広範で複雑な質問です。物理学をゲームに適用する方法が正しくないように思えます。ここに私が検討するいくつかの概念があります:

  • まだ行っていない場合は、フレームごとにゲームを更新しますaddEventListener(Event.ENTER_FRAME, frame);
  • 重力は一定の加速度であり、常にキャラクターに影響を与える必要があります。const GRAVITY:Number = 9.8; // or whatever value
  • キャラクターと地面の間の衝突をチェックする必要があります。それらが衝突するとき、キャラクターの位置を地面の位置に設定します (彼が通り抜けないようにするため)。
  • キャラクターがジャンプするときの開始速度を設定できます。ENTER_FRAMEイベントでは、その速度に重力を適用して、キャラクターが徐々に減速してから落下し始めるようにする必要があります。
  • モーションを計算する簡単な方法については、SUVAT の数学方程式を調べてください。リンク

自分でプログラムせずに物理演算や衝突検出などが必要な場合は、これが一般的な選択肢です。

于 2013-10-14T19:48:59.030 に答える