0

現在、Direct X 9.0 を使用して C# でゲームを作成しています。ほぼすべて完了しましたが、ジャンプの物理に問題があります。Y 座標と X 座標に対して宣言された変数があります。

これを行う簡単な方法があるかどうか疑問に思っていました。答えを求めて高低を検索しましたが、見つけた答えは無関係であるか、XNA などの別のプログラミング言語を使用しています。

私は現在、 が押されているかどうかを確認するようにブール変数を設定しWています。これにより、彼がジャンプするコードがトリガーされます。などをいじっています。

if (Form1.jump == true)
{
    Playerypos = Playerypos - vel;
    Playerxpos = Playerxpos + vel;
    //Form1.jump = false;
}

これはうまくいきませんでした。

4

1 に答える 1

1

動き回るよりもジャンプする方が少し必要です。加速の概念が必要です。

基本的に、ジャンプキーが押されたことを検出すると、垂直加速度を正の値に設定します。物理ループを変更して、常に加速度を自分の位置に追加し、次に重力を加速度に追加する必要があります(したがって、加速度を減らしてから負にすると、着地します)。自分の位置を自分の土地/飛行機/可能な限り低い位置(*)に固定すると、設定が完了します。

(*)見た目ほど簡単ではありませんが、大きな増分でジャンプして地面から落ちる可能性があるため、ここで何らかのレイキャスティングアルゴリズムを実装する必要があります。ポイントインラインではなく、ボックス交差線を考えてください。

于 2012-05-25T15:16:56.533 に答える