我正在使用XNA在C#中进行一个非常简单的蛇形游戏。问题是我希望精灵以递增的方式移动,但不是尽可能快。由于精灵是16x16像素,它以16像素的增量移动。例如,如果当前方向是正确的,则该行执行:
playerPosition.X += 16;
这很好用,但它以惊人的速度移动。我怎么能让它慢慢移动?像每1/2秒16个像素一样。
答案 0 :(得分:0)
你可以保留一个内部计数器“自上次移动以来的时间”,每帧添加一次,一旦超过指定的阈值,移动并重置计数器。
Game.Update
传递GameTime
对象,您可以使用该对象确定自上次调用Update
以来所经过的时间。
答案 1 :(得分:0)
自从我上次使用XNA已经有很长一段时间,但是从你在游戏循环中记得的时候,当你做你的行动时,你可以访问一个自上次行动以来基本上已经过去的时间。你应该使用它并减少你的16像素运动,只能在第二部分的那一部分。
大多数情况下,您可以将其除以60并将其作为新的移动速度使用,并且非常安全。如果你想每秒移动16个像素,你的每帧像素移动是16/60。