如何以递增的方式慢慢移动精灵

时间:2011-10-07 22:04:56

标签: c# xna

我正在使用XNA在C#中进行一个非常简单的蛇形游戏。问题是我希望精灵以递增的方式移动,但不是尽可能快。由于精灵是16x16像素,它以16像素的增量移动。例如,如果当前方向是正确的,则该行执行:

playerPosition.X += 16;

这很好用,但它以惊人的速度移动。我怎么能让它慢慢移动?像每1/2秒16个像素一样。

2 个答案:

答案 0 :(得分:0)

你可以保留一个内部计数器“自上次移动以来的时间”,每帧添加一次,一旦超过指定的阈值,移动并重置计数器。

Game.Update传递GameTime对象,您可以使用该对象确定自上次调用Update以来所经过的时间。

答案 1 :(得分:0)

自从我上次使用XNA已经有很长一段时间,但是从你在游戏循环中记得的时候,当你做你的行动时,你可以访问一个自上次行动以来基本上已经过去的时间。你应该使用它并减少你的16像素运动,只能在第二部分的那一部分。

大多数情况下,您可以将其除以60并将其作为新的移动速度使用,并且非常安全。如果你想每秒移动16个像素,你的每帧像素移动是16/60。