在一个较新的 flash 播放器版本中,adobe 向 flash 播放器添加了一项功能,该功能可以在 swf 最小化时将其帧速率降低到 2 FPS(即,您在浏览器上切换选项卡,最小化浏览器等) .
我制作了一款多人游戏,而这个“功能”确实令人头疼。玩家能够最小化他们的游戏并避免死亡(因为他们的客户或多或少地暂停而其他对手继续玩)。
有没有办法解决这个问题?我找不到任何有关如何关闭此功能的文档。
任何帮助将不胜感激!
在一个较新的 flash 播放器版本中,adobe 向 flash 播放器添加了一项功能,该功能可以在 swf 最小化时将其帧速率降低到 2 FPS(即,您在浏览器上切换选项卡,最小化浏览器等) .
我制作了一款多人游戏,而这个“功能”确实令人头疼。玩家能够最小化他们的游戏并避免死亡(因为他们的客户或多或少地暂停而其他对手继续玩)。
有没有办法解决这个问题?我找不到任何有关如何关闭此功能的文档。
任何帮助将不胜感激!
您的 FPS/渲染管道应该与逻辑隔离。有很多技术可以做到这一点,但一个简单的方法是将 FPS 固定到目标速率并以此为基础,检查每个周期经过的时间并针对经过的时间执行适当的操作。
当然,理想情况下,您正在运行一个多内核应用程序,但我不确定您在 SWF 中有哪些可用功能,而且更容易将此方法改装到固定为 FPS 速率的现有系统。
你最终会得到这样的东西:
newX = oldX + (xSpeedPerSecond * secondsElapsed)
至少 17 年前,当我还是个少年时,我们是这样做的……
您只需要检查每次调用函数之间的时间。你可以阅读我在我的网站上发表的一篇文章: http: //fabricebacquart.info/wordpress/?p= 9
基本上,您只需要花时间并根据这个时间进行更新。就像根据时间或多或少地移动或在需要时多次执行更新程序。
另一种方法是通过在游戏未聚焦但不可靠时设置 fps 来覆盖此行为(请参阅相应的事件:Event.ACTIVATE 和 Event.DEACTIVATE 并在侦听器函数中设置 stage.frameRate)。