Кнопка начала расфокусировки - PullRequest
0 голосов
/ 31 марта 2019

Вот мой код:

document.onkeydown = function(event){
          switch(event.keyCode){
case 32:
                //space
                alert("Space pressed");
                clearInterval(game_interval);
                game_status = "paused";
                break;
}}

С функцией alert() все идет хорошо. Но если я удаляю alert("Space pressed"), в моем коде есть ошибки. Ошибка в том, что игра не останавливается. Любая помощь?

P.S. Этот код предназначен для игры в тетрис. Я хочу, чтобы, когда пользователь нажимал кнопку пробела, часть тетриса двигалась как можно дальше вниз.

Спасибо заранее, Крис Паппас

** Я пытался поместить clearInteval в функцию setTimeout, но без разницы.

function move_tetris_part(){
    //check if part can move down
    part_can_move();

    if(part_can_go_down==false){
        clearInterval(game_interval);
        new_part();

    }else{
        make_help_part();
        if(new_piece==false){
            delete_tetris_part();
        }else{
            new_piece = false;
        }

        current_y = current_y+1;
        make_tetris_part(false);


    }
}

Вышеуказанная функция вызывается периодически.

Я нашел ошибку !!! Когда я нажимаю кнопку «Пуск», чтобы начать игру, кнопка остается сфокусированной, когда я нажимаю кнопку пробела. Как я могу прекратить запуск события click на кнопке начала, когда я нажимаю пробел?

1 Ответ

0 голосов
/ 01 апреля 2019
document.getElementsByName("start")[0].onclick = function() {
        this.blur();
        game_status = "started";
        interval_time = 300;
        game_over_rect.setAttribute("display","none");
        game_over_text.setAttribute("display","none");
        if(document.getElementsByName("start")[0].value=="Εκκίνηση"){
            initialize_squares_array();
            part_selected=0;
            new_part();
            console.log(234);
        }else{
            game_interval = setInterval(move_tetris_part,interval_time);
        }

    };

Ответ - размытие сфокусированной кнопки.

...