ゲームループを次のように設定します。
window.requestAnimFrame = (function(){
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function( callback ){
window.setTimeout(callback, 1000 / 60);
};
})();
(function gameLoop() {
var time = new Date().getTime();
var dt = (time - prevFTime) / 1000.0;
prevFTime = time;
state.effectsOn = dt > 1 / 60.0 ? true : false;
state.effectsOn = false;
//game rendering logic goes here
window.requestAnimFrame(gameLoop);
})();
ここで私がやりたいのは、effectsOn
フレームレートが良好なために変数が設定されている場合、ゲームでいくつかの特殊効果をレンダリングすることです。そうでない場合は、これらの特殊効果のレンダリングをスキップします。
しかし、私の明らかな問題は、ifdt>1/60
とeffectsOnがtrueに設定されていることです。レンダリング時間が長くなる特殊効果をレンダリングするdt < 1/60
ので、effectsOnをfalseにする可能性があります。
私がやろうとしていることを達成するための良い代替方法はありますか?
最悪の場合、メインメニューにチェックボックスのようなものを配置して、ユーザーに特殊効果をレンダリングするかどうかを決定させることができます...