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 函数。
LoCEngine 实例存储在变量 Engine 中(不确定在 setTimeout 中使用它是否是最佳实践......请告知)
它会为第一帧正确调用 this.drawScene,但是在超时(30 FPS)时它会抛出一个异常说:
TypeError: this.drawScene is not a function
不太清楚为什么......我敢肯定这只是我没有遇到过的关于 JS 的事情。先感谢您。