LoCEngine.prototype.runGame = function() {
// Initiate our game loop
ctx.clearRect(0, 0, 800, 600);
this.drawScene(this.curScene);
if(this.gameRunning) {
window.setTimeout(Engine.runGame, 1000/this.framerate);
}
}
LoCEngine是我一直在構建的一個實驗性引擎,用於瞭解HTML5 Canvas遊戲的來龍去脈。這是一段很美好的時光,直到我玩完遊戲圈。隨時間調用runGame,清除Canvas並調用drawScene函數。setTimeout未找到對象方法
LoCEngine實例存儲在變量引擎(不知道是否使用在setTimeout的是最佳實踐......請指教)
它會正確地調用this.drawScene第一幀,但在超時(30 FPS),它拋出一個異常說:
TypeError: this.drawScene is not a function
不明白爲什麼......我敢肯定,這只是一些關於JS我還沒有碰到過。先謝謝你。
'this'指的是我相信的窗口對象。你應該使用'LocEngine.framerate' – kennypu 2013-03-14 01:55:13