2011-04-11 156 views
1

鉴于WP7应用程序中一个周期的标准滴答数为333,333个滴答滴答(或者如果您将其设置为这样),那么这个时间段有多少时间需要人工操作?多少时间太多?

换句话说,标准程序会消耗多少滴答(绘制屏幕,​​清除缓冲区等)?

我制定了一个在Spike中做某些事情的流程(就像我经常这样做),但它现在正在吃掉大约14毫秒的时间(大约是我可用时间片的一半),而且我担心的是关于如果超过这一点会发生什么。

回答

2

执行计算密集型事物的传统方式是在后台线程上执行它们 - 这意味着UI线程在计算发生时不会阻塞 - 通常UI线程在背景之前进行调度线程,以便即使CPU处于100%忙碌状态,屏幕绘图也能顺利进行。这种方法可以让你排队尽可能多的工作,你想。

如果您需要在UI线程内完成计算工作 - 例如因为它是游戏机制的一部分或“每帧”更新/绘图逻辑的一部分,所以传统上会发生的情况是游戏帧速率稍微减慢,因为手机在绘制之前正在等待逻辑。

如果你的问题是“什么是不错的帧率?”然后,这取决于应用程序/游戏的类型,但通常(在我的年龄...)我认为30Hz及以上的任何东西都可以 - 每帧最多可达33ms - 并且帧率平稳很重要 - 即每个帧长度大约需要相同的时间。

我希望能大致回答你的问题......并不完全确定我明白了!

+0

我正在执行的过程是像素解析来确定碰撞和反弹向量(正常),所以不幸的是,它确实需要在主线程中。我正在使用边界框来限制执行检查的时间,并且只有在实际发生碰撞时才会发生真正的密集工作。只是想知道14ms是否会在发生的那些时刻引起不太平稳的游戏玩法。 – DigitalMoss 2011-04-12 02:55:57

+2

我认为对你来说最好的答案就是“吸引并看到”。说实话,14毫秒听起来可行 - 这会让你以基本的60赫兹开始......一旦你运行了一些代码,你需要在真实的手机上测试 - 模拟器对你没有好处。或者,您可以轻松获取标准示例XNA应用程序,并在游戏循环中添加一个14ms忙闲循环以查看效果。 – Stuart 2011-04-12 07:35:02

+0

是的,我正在推进。在此之前,我已经在手机上测试过应用程序,但目前还没有。我将你的回答标记为答案,因为我感谢你花时间回复。 – DigitalMoss 2011-04-13 15:52:39