Незаконное использование заявления о нарушении; Javascript
Когда эта переменная становится определенной величиной, я хочу, чтобы цикл остановился, но я продолжаю получать сообщение об ошибке "Uncaught SyntaxError: Illegal break statement".
function loop() {
if (isPlaying) {
jet1.draw();
drawAllEnemies();
requestAnimFrame(loop);
if (game==1) {
break;
}
}
}
Ответы
Ответ 1
break состоит в том, чтобы вырваться из цикла, например, в то время как, switch и т.д., которого у вас здесь нет, вам нужно использовать return
для разбить поток выполнения текущей функции и вернуться к вызывающему абоненту.
function loop() {
if (isPlaying) {
jet1.draw();
drawAllEnemies();
requestAnimFrame(loop);
if (game == 1) {
return
}
}
}
Примечание. Это не охватывает логику условия if или когда возвращаться от метода, для этого нам нужно иметь больше контекста относительно методов drawAllEnemies
и requestAnimFrame
, а также как значение game
обновлено
Ответ 2
Вам нужно убедиться, что requestAnimFrame перестает быть вызванным после игры == 1. Инструкция break только выходит из традиционного цикла (например, while()
).
function loop() {
if (isPlaying) {
jet1.draw();
drawAllEnemies();
if (game != 1) {
requestAnimFrame(loop);
}
}
}
Или, альтернативно, вы можете просто пропустить второе условие if
и изменить первое условие на if (isPlaying && game !== 1)
. Вам нужно будет сделать переменную, называемую игрой, и дать ей значение 0. Добавьте 1 к ней в каждую игру.