0

XNA で Tile-Base Movement を作成しようとしましたが、方法がわかりません。私のタイルは 32x32 で、スプライトは同じサイズです。

これは、スプライトを移動するために使用するコードです。

    if ( Keyboard.GetState().IsKeyDown(Keys.Up))
    {
        Position.Y -= Speed.Y;
    }
    if ( Keyboard.GetState().IsKeyDown(Keys.Down))
    {
        Position.Y += Speed.Y;
    }

...そして他の2つのキーと同じです。

スプライトをスムーズに、一度に 1 つの正確なタイルに移動させたいのですが、そのタイルに「ジャンプ」してはいけません。下手な英語でごめんなさい、そしてありがとう。

4

1 に答える 1

0

経過時間に基づいてスプライトの位置を変更する必要があります。

したがって、速度が毎秒 32 ピクセルで、経過時間が 60 秒 (60 fps) の場合、32 * (1/60)更新ごとにスプライト ピクセルを移動するだけで済みます。

パラメータを使用Update(GameTime gameTime)して、最後の更新からの経過時間を取得します。

于 2012-07-16T04:46:49.580 に答える