1

私はXNAを使用したシンプルなプラットフォーマーゲームに取り組んできました。良いジャンプアルゴリズムを作成するのに苦労しています。ジャンプアルゴリズムの厄介な半分完了したバージョンを取り除いた後、私が残したのはすべてです。

if (keystate.IsKeyDown(Keys.W))
{
    spritePosition.Y = spritePosition.Y - 10;
}

これは非常に洗練されていないスタートだと思いますが、どんなヒントも素晴らしいでしょう。私は独学のプログラマーなので、いくつかの用語が失われる可能性があります。実際のコードを見るのが最良の学習方法だと思う傾向があります。ありがとう。

4

2 に答える 2

8

(物理的に) ジャンプすると、位置ベクトルではなく、Y 速度ベクトルに量が追加されます。位置を 10 移動するということは、10 ティックだけ上方にテレポートしていることを意味します。

速度を調整してから、メイン ループの位置を変更してみてください。そして、重力から下への加速度を覚えておいてください!

編集:以下のコメントから物理チュートリアルへのリンクを追加しました。 rodedev.com/tutorials/gamephysics

于 2012-11-28T14:45:01.043 に答える
0

以下を試してください:

if(Input.GetKeyDown(KeyCode.W))
{
    // your code here
}

プレイヤーが を押すたびに、もう一度W押すことができるまでしか移動しないようにWします。いつでもジャンプ率を設定して、数秒ごとに 1 回だけジャンプできるようにすることができます。

于 2016-09-20T04:22:54.123 に答える