2012-07-16 84 views
0

我试图在XNA中制作瓷砖基地运动,但我不知道如何。我的瓷砖是32x32,精灵是相同的大小。瓷砖基地运动

这是我使用移动精灵的代码:

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

...,并与其他2项相同。

我想让我的精灵在当时移动平滑,一个确切的瓷砖,但不是“跳”到瓷砖。 对不起,我的英语不好,谢谢。

回答

0

您需要根据已经过的时间量来更改精灵的位置。因此,如果你的速度是每秒32px,并且经过时间是60秒(60fps),那么你只需要移动精灵32 * (1/60)像素每次更新。

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

+0

好吧,但是当我停止按下键时,精灵停止移动,并且不会到达另一个拼贴。速度是:32 * gameTime.ElapsedGameTime.TotalSeconds; – Isheros 2012-07-16 05:21:52

+0

您需要设置一个目标位置,而不仅仅是当按下该键时。因此,请设置一个表示目标位置的字段,并继续移动,直到达到该值。 – 2012-07-16 06:04:28