所以我正在尝试构建一个多人网络游戏,但我几乎已经完成了,但是当我注意到一些奇怪的东西时,我正在添加一些额外的功能,如启动画面等等。如果我完全注释掉01节,那么这段代码仍然有用,但是如果我在第02节中注释掉第二行,无论01节是否被注释掉,那么它将无法工作。我可能误解了animationFrame正在做什么或/和它是如何工作的。有人可以向我解释这个或提供解释的链接。谢谢!
//----------START SECTION 01----------
window.requestAnimationFrame = (function() {
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
function(callback) {
window.setTimeout(callback, 1000 / 60);
};
})();
//----------END SECTION 01----------
//----------START SECTION 02----------
(function animationLoop() {
requestAnimationFrame(animationLoop);
gameLoop();
})();
//----------END SECTION 02----------
答案 0 :(得分:1)
您分配给window.requestAnimationFrame的垫片是旧版浏览器的填充,但如果您正在测试的浏览器都有requestAnimationFrame,那么当您将其注释掉时,它仍将在该浏览器中工作。 / p>
当然你需要总是调用requestAnimationFrame,因为它有点像setTimeout的替换。如果你没有调用它,那么gameLoop只运行一次。