我现在在XNA开发平台发动机很短的一段时间了,我决定看看到目前为止我的笔记本电脑是怎么运行的(不是我正在开发游戏的。)我去过得到一些奇怪的延迟(当改变方向和行走/跳跃时),以及一些滞后。我已经让一位朋友在他的电脑上运行它并获得相同的结果,但在我的桌面上它没问题。有什么想法吗?
我最初认为它可能与不同的显卡有关,因为我的桌面有一个相对强大的,并且有这些问题的计算机集成了图形,但由于它是一个小型2D游戏我不认为会有像这样的问题。
答案 0 :(得分:0)
您需要对代码进行分析,以查看代码的最长部分,您可以使用许多分析器。
还有其他questions致力于此。
一旦启动并运行,您可能希望在2台计算机上安装它,以查看导致它们运行缓慢的原因。
你可能想要玩的另一件事是
IsFixedTimeStep = true/false
graphics.SynchronizeWithVerticalRetrace = true/false
我搞砸了改变它们,并根据情况使它变得更平滑和更少延迟
最后,你可能已经这样做,但总是将经过的时间用于你的运动。
不要这样做。
position += velocity;
DO 这个。
float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds;
position += velocity * elapsed * speed;