この変数が一定量になると、ループを停止したいのですが、「Uncaught SyntaxError:Illegal break statement」というエラーが表示され続けます。
function loop() {
if (isPlaying) {
jet1.draw();
drawAllEnemies();
requestAnimFrame(loop);
if (game==1) {
break;
}
}
}
break は、for、while、switchなどのループから抜け出します。ここにはありません。現在の関数の実行フローを中断するには、return
を使用する必要があります。呼び出し元に戻ります。
function loop() {
if (isPlaying) {
jet1.draw();
drawAllEnemies();
requestAnimFrame(loop);
if (game == 1) {
return
}
}
}
注:これは、if条件の背後にあるロジックやメソッドから戻るタイミングをカバーしません。そのため、drawAllEnemies
およびrequestAnimFrame
メソッドとgame
値が更新されます
Game == 1になったらrequestAnimFrameの呼び出しを停止する必要があります。breakステートメントは、従来のループ(例:while()
)のみを終了します。
_function loop() {
if (isPlaying) {
jet1.draw();
drawAllEnemies();
if (game != 1) {
requestAnimFrame(loop);
}
}
}
_
または、2番目のif
条件をスキップして、最初の条件をif (isPlaying && game !== 1)
に変更することもできます。 gameという変数を作成し、値を0にする必要があります。すべてのゲームに1を追加します。
私はおそらくあなたに刺激を与える関数next()
を持っています。
function queue(target) {
var array = Array.prototype;
var queueing = [];
target.queue = queue;
target.queued = queued;
return target;
function queued(action) {
return function () {
var self = this;
var args = arguments;
queue(function (next) {
action.apply(self, array.concat.apply(next, args));
});
};
}
function queue(action) {
if (!action) {
return;
}
queueing.Push(action);
if (queueing.length === 1) {
next();
}
}
function next() {
queueing[0](function (err) {
if (err) {
throw err;
}
queueing = queueing.slice(1);
if (queueing.length) {
next();
}
});
}
}