游戏最小化时,每秒帧数下降:(

时间:2013-07-22 20:16:18

标签: flash actionscript

在其中一个较新的Flash播放器版本中,adobe为闪存播放器增加了一项功能,当它被最小化时,将swf的帧速率降低到2 FPS(即你在浏览器上切换标签,最小化浏览器)等等。)

我做了一个多人游戏,这个“功能”引起了真正的头痛。玩家可以最大限度地减少他们的游戏并避免死亡(因为他们的客户或多或少暂停,而其他对手继续玩)。

有没有办法解决这个问题?我无法找到有关如何关闭此功能的任何文档。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

您的FPS /渲染管道应与逻辑隔离。有很多技术可以做到这一点,但一个简单的方法是将FPS固定为目标速率并将其全部基于该速率,检查每个周期所经过的时间并对经过的时间执行适当的操作。

理想情况下,您当然正在运行多内核应用程序,但我不确定您在SWF中可用的功能,并且更容易将此方法改编为固定为FPS速率的现有系统。

你最终会得到这样的东西:

newX = oldX + (xSpeedPerSecond * secondsElapsed)

至少17年前我十几岁的时候就是这样做的。

答案 1 :(得分:0)

您只需要检查每次调用函数之间的时间。 您可以阅读我在我的网站上发布的关于此的帖子: http://fabricebacquart.info/wordpress/?p=9

基本上,您只需要花时间并根据时间进行更新。比如根据时间或多或少地移动或者在需要时多次执行更新例程。

另一种方法是通过在游戏不在焦点时设置fps来覆盖此行为,但这不会那么可靠(请参阅相应的事件:Event.ACTIVATE和Event.DEACTIVATE并在侦听器中设置stage.frameRate函数)。