Подтвердить что ты не робот

Незаконное использование заявления о нарушении; Javascript

Когда эта переменная становится определенной величиной, я хочу, чтобы цикл остановился, но я продолжаю получать сообщение об ошибке "Uncaught SyntaxError: Illegal break statement".

function loop() {
    if (isPlaying) {
        jet1.draw();
        drawAllEnemies();
        requestAnimFrame(loop);
        if (game==1) {

            break;

        }

    }
} 
4b9b3361

Ответ 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 к ней в каждую игру.