Xna 在我自己的it系统上,其他系统上的奇怪移动延迟';很好

Xna 在我自己的it系统上,其他系统上的奇怪移动延迟';很好,xna,game-engine,Xna,Game Engine,我在XNA上开发了一个platformer引擎有一段时间了,我决定看看到目前为止我在笔记本电脑上运行的情况(不是我在开发游戏的情况)。我得到了一些奇怪的延迟(当改变方向和行走/跳跃时),以及一些延迟。我让一个朋友在他的电脑上运行它,他得到了同样的结果,但在我的桌面上就可以了。有什么想法吗 我最初认为这可能与不同的图形卡有关,因为我的桌面有一个相对强大的图形卡,而有这些问题的计算机有集成图形,但由于这是一个小型2D游戏,我不认为会有这样的问题。 您需要对代码进行评测,以查看其中哪些部分花费的时间最

我在XNA上开发了一个platformer引擎有一段时间了,我决定看看到目前为止我在笔记本电脑上运行的情况(不是我在开发游戏的情况)。我得到了一些奇怪的延迟(当改变方向和行走/跳跃时),以及一些延迟。我让一个朋友在他的电脑上运行它,他得到了同样的结果,但在我的桌面上就可以了。有什么想法吗

我最初认为这可能与不同的图形卡有关,因为我的桌面有一个相对强大的图形卡,而有这些问题的计算机有集成图形,但由于这是一个小型2D游戏,我不认为会有这样的问题。

您需要对代码进行评测,以查看其中哪些部分花费的时间最长,您可以使用许多评测器

这方面还有其他专门的措施

一旦你有一个启动并运行,你可能会想把它安装在两台计算机上,看看是什么原因导致它运行缓慢

时间步长/帧速率 另一件你可能想玩的东西是

IsFixedTimeStep = true/false
graphics.SynchronizeWithVerticalRetrace = true/false
我在改变它们的时候弄得一团糟,这取决于具体情况,它会让事情变得更顺利,更不拖沓

经过的时间 最后,你可能已经这样做了,但要始终将经过的时间应用到你的运动中

不要这样做

position += velocity;
做这件事

float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds;
position += velocity * elapsed * speed;

你应该分析你的代码。有一个90天免费的VisualStudioUltimate试用版,您可能想尝试使用它来找出是哪段代码导致了速度减慢。除此之外,可能没有什么建议。事实上,有一些事情。首先,填写您的个人资料,为我们提供一些关于您自己的信息,例如您在XNA、C#或任何其他方面的经验水平,这些可能有助于让社区了解您可能遗漏或忽略了什么。您可能希望在问题中包含负责向左和向右移动的代码片段。这在要求查找与代码相关的问题时确实有帮助。谢谢!我尝试过使用IsFixedTimeStep,但没有同步垂直回溯。将“垂直回溯”改为“假”和“固定时间”改为“真”解决了我的问题。没问题,很高兴我能帮上忙!