0

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 のループごとにリセットせずに、ここでローカル変数を定義する方法はありますか?

4

1 に答える 1