HTML5 ゲームでカメラ/ビューポートがどのように機能するかを示す、Gustavo Carvalho という人物によるスタックオーバーフローの投稿があります。
requestAnimationFrame の代わりに setInterval が使用されることを除いて、すべて問題ありません。
成功せずに 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);
}
}