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 个键相同。

我希望我的精灵移动平滑,一次精确的瓷砖,但不“跳”到瓷砖。对不起我的英语不好,谢谢。

4

1 回答 1

0

您需要根据经过的时间量来更改精灵的位置。

因此,如果您的速度是每秒 32 像素,并且经过的时间是第 60 秒 (60fps),那么您32 * (1/60)每次更新只需移动精灵像素。

使用Update(GameTime gameTime)参数获取自上次更新以来经过了多少时间。

于 2012-07-16T04:46:49.580 回答