我正在创建一个使用setInterval
的时间间隔的Flash游戏,有时会进行繁重的计算。问题是在较慢的机器上,这些计算无法跟上帧率并且电影减慢但是定时器不受影响是什么使得它们与电影异步。回顾过去,使用计时器是一个坏主意,但我现在无法改变它。所以...
有没有办法跳过画框?如果游戏在某些区域的帧速率较慢,但与计时器保持同步,那就没关系了。或者您有任何其他想法如何解决我的问题?我正在使用AS2顺便说一句。
答案 0 :(得分:0)
解决方案是要么使用基于时间的度量,或基于帧的度量,而不是将两者混合使用。
首选解决方案是在所有帧事件中使用getTime()
来确定自上一帧以来经过的时间,以及在此事件中您需要做多少。
答案 1 :(得分:0)
如何将您的更新拆分为两个区域:更新()您只会更新以后用于渲染的值,而 draw() / render()其中你会得到所有与图形相关的代码吗?
你有一个跳帧变量,你可以在onEnterFrame中使用它来在你需要的时候渲染。
e.g。
onEnterFrame = function(){
update();
if(_currentframe % frameSkip == 0) draw();
}
HTH