WP7上的XNA性能

时间:2012-03-13 15:27:12

标签: c# xna

我正试图让我的XNA游戏在WP7上的帧率高达60 fps。它似乎被锁定在30fps附近。我尝试过改变,但没什么区别。

PresentationParameters.PresentationInterval = PresentInterval.One

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

您可以将XNA默认的固定时间步长更改为:

// 166666 ticks is 16.6ms, which is 60hz
game.TargetElapsedTime = new TimeSpan(166666)  // 'game' refers to your instance of XNA.Game 

以下是该功能的文档: http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.game.targetelapsedtime.aspx

或者,如果您只想关闭固定时间步,请尝试将固定时间步设置为false:

game.IsFixedTimeStep = false   // 'game' refers to your instance of XNA.Game

以下是该功能的文档: http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.game.isfixedtimestep.aspx

默认情况下,这在XNA中设置为true,因此您将看到固定的时间步长,直到您设置它为止。

当然,性能问题也有可能让你保持30 fps左右。您可能会看到V-sync阻止帧与手机显示同步,显示可能限制为30 fps(不太可能),或者如果您的游戏每帧花费超过16.6ms,V-sync可能会将其保持在30 fps以使其与显示屏保持同步。在30 fps时,您的游戏将渲染显示刷新的每隔一帧。但是如果V-sync被禁用并且你的游戏以50 fps的速度运行,你的游戏只会在显示刷新时部分完成呈现,你最终会得到screen tearing