HTML キャンバスを使用して簡単なゲームをプログラミングし、JavaScript で編集しています。キャンバスに何かを描画するいくつかの関数があり、それらの関数はすべて単一の setInterval を使用してループしています。ただし、これらの関数の一部には、その関数に関する特定の属性を含むローカル変数が必要であり (正確には、関数が「xx」であるかどうかにかかわらずトグル)、これらの関数が多数存在するため、これを格納します。グローバルウィンドウの変数は非常に実用的ではありません。
この変数をループごとにリセットせずに、この関数で変数 (または属性) を定義する方法はありますか?
だから私が持っているコードで:
var DoSomething = function(){
var xx = new Boolean
[...]
if (condition) { xx = false}
if (condition) { xx = true}
}
そして、すべてがメインループで実行されます:
var gameLoop = function(){
DoSomething()
OtherFunctions()
}
var startGame = function(){
setInterval(gameLoop,10)
}
startGame()
私が言ったように、この属性/変数xx
を持つ多くの関数があるため、グローバルウィンドウで定義することは非常に非現実的です. xx
しかし、現在、ループはループxx
の開始時にリセットされ続けています。setInterval のループごとにリセットせずに、ここでローカル変数を定義する方法はありますか?