有一個名爲Gustavo Carvalho的人的stackoverflow帖子顯示了相機/視口如何在HTML5遊戲中工作。如何將setInterval轉換爲requestAnimationFrame
除了使用setInterval代替requestAnimationFrame之外,所有的都很好。 ?
我試圖轉換爲requestAnimationFrame沒有成功:-(
有人可以請幫助這裏的帖子:
Simple HTML5 game camera/viewport
非常感謝
編輯:!查看答案後下面,我想出了這個解決方案:
更換以下代碼...
// 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);
}
}
試試這個例子。 http://sathyamoorthi10.blogspot.in/2012/04/html5-requestanimationframe-example.html – user10
@dystroy,我鏈接到代碼而不是粘貼是因爲在這篇文章中有一些有用的解釋,如果我只是粘貼這裏的代碼/此外,還有很多代碼。 –
@HoneyBadger這不是你應該問的問題。請參見[this](http://stackoverflow.com/help/on-topic)和[this](http://sscce.org/)。 –