有一个名为 Gustavo Carvalho 的人在 stackoverflow 上发布了一篇文章,展示了相机/视口在 HTML5 游戏中的工作原理。
除了使用 setInterval 代替 requestAnimationFrame 之外,一切都很好。
我尝试转换为 requestAnimationFrame 没有成功:-(
有人可以帮忙吗?这是帖子:
非常感谢!
编辑:查看下面的答案后,我想出了这个解决方案:
替换以下代码...
// Game Loop
var gameLoop = function(){
update();
draw();
}
// <-- configure play/pause capabilities:
var runningId = -1;
Game.play = function(){
if(runningId == -1){
//Use setInterval instead of requestAnimationFrame for compatibility reason
runningId = setInterval(function(){
gameLoop();
}, INTERVAL);
console.log("play");
}
}
Game.togglePause = function(){
if(runningId == -1){
Game.play();
}
else
{
clearInterval(runningId);
runningId = -1;
console.log("paused");
}
}
// -->
换成这个...
// Game Loop
var gameLoop = function(){
if(gameStatus == 'play'){
update();
draw();
}
window.requestAnimationFrame(gameLoop);
}
var gameStatus = 'play';
Game.play = function() {
gameLoop();
}
Game.togglePause = function() {
if(gameStatus == 'play'){
gameStatus = 'pause';
console.log(gameStatus);
}
else if(gameStatus == 'pause'){
gameStatus = 'play';
console.log(gameStatus);
}
}