我在 XNA 中开发平台游戏引擎已经有一段时间了,我决定看看到目前为止我在笔记本电脑上是如何运行的(而不是我正在开发游戏的)。我感到有些奇怪延迟(改变方向和行走/跳跃时),以及一点延迟。我让一个朋友在他的电脑上运行它,他得到了相同的结果,但在我的桌面上它很好。有什么想法吗?
我一开始以为可能是显卡不同的问题,因为我的台式机比较强大,而且有这些问题的电脑都是集成显卡,但因为是2D小游戏,我觉得不会有这样的问题.
我在 XNA 中开发平台游戏引擎已经有一段时间了,我决定看看到目前为止我在笔记本电脑上是如何运行的(而不是我正在开发游戏的)。我感到有些奇怪延迟(改变方向和行走/跳跃时),以及一点延迟。我让一个朋友在他的电脑上运行它,他得到了相同的结果,但在我的桌面上它很好。有什么想法吗?
我一开始以为可能是显卡不同的问题,因为我的台式机比较强大,而且有这些问题的电脑都是集成显卡,但因为是2D小游戏,我觉得不会有这样的问题.
您将需要分析您的代码以查看它的哪些部分花费的时间最长,您可以使用许多分析器。
还有其他专门针对此的问题。
一旦您启动并运行了一个,您可能希望将它安装在 2 台计算机上,看看是什么导致它运行缓慢。
你可能想玩的另一件事是
IsFixedTimeStep = true/false
graphics.SynchronizeWithVerticalRetrace = true/false
我乱七八糟地改变它们,并根据情况使它更顺畅,更少滞后
最后,您可能已经这样做了,但始终将经过的时间应用于您的运动。
不要这样做。
position += velocity;
这样做。
float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds;
position += velocity * elapsed * speed;