@Yarchik_Ya

Почему интервал не запускается повторно (пытаюсь запустить внизу, там где "restart.addEventListener('click', function())?

let getY = -40;
let score = 0;
let xRand = Math.floor(Math.random()*500);
let goDown = 0;
let goDown1 = 0;
let goDownHiger = 0;
let canvas = document.getElementById("canvas");
let ctx = canvas.getContext("2d");
let speed = 10;
let startOfGame = false;
let preStart = false;
let addressButton = document.getElementById("startGame");
let restart = document.getElementById("restartGame");
let activeBrows = false;
let starr = function(){};
let z = false;
let x = false;
let y = false;
canvas.width = 500;
canvas.height = 300;
 
let loser = new Image();
loser.src = ('../img/endOfGame.png');
 
let imgg = new Image();
imgg.src = ('../img/готоваБомба.png');
 
let city = new Image();
city.src = ('../img/cityImg.png');
 
 
 
 let motionOfBomb = function(){
    ctx.clearRect(0,0,500,300);
    ctx.drawImage(city,0,0,500,300);
    ctx.drawImage(imgg,xRand,getY,70,53);
    if(xRand<=70){
        xRand = 70;
    }else if(xRand >= 430){
        xRand = 430 ;
    }
        
    if(getY >= 200){
        startOfGame = false;
        clearInterval(goDown);
        ctx.drawImage(loser,0,0,500,300);
        $('#restartGame').css('display','block');
    };
    
    if(score >= 0 && score <= 10){
        getY++; 
    }else if(score > 10 && score <=15){
        getY = getY + 1.5;
    }else if(score > 15 && score <= 20){
        getY = getY + 2;
    }else if(score > 20 && score <= 25){
        getY = getY + 2.5;
    }else if(score > 25 && score <= 30){
        getY = getY + 3;
    }else if(score > 30 && score <= 40){
        getY = getY + 3.5;
    }else if(score > 40){
        getY = getY + 5;
    }
 };
 
 
 imgg.onload = function(){
    x = true;
 }; 
 city.onload = function(){
    y = true;
 };
 loser.onload = function(){
    z = true;
 }
         
 
 canvas.addEventListener('click', function(e) { 
    let xx = e.pageX - canvas.offsetLeft;
    let yy = e.pageY - canvas.offsetTop;
    if(xx > xRand && xx < xRand + 70 && yy > getY && yy < getY + 53){
        xRand = Math.floor(Math.random()*500);
        getY = -40;
        score++;
        document.getElementById("scoreH1").textContent = "Рекорд: " + score;
    }
 });
  addressButton.addEventListener('click', function(){
    $('#startGame').css('display','none');
    if(x && y){
        startOfGame = true;
    }
    
    if(startOfGame){
        goDown = setInterval(motionOfBomb, speed);
     }
  });
    restart.addEventListener('click', function(){      //При клике интервал должен работать, но нет.
    $('#restartGame').css('display','none');
    if(x && y){
        startOfGame = true;
    }
    
    if(startOfGame){      
        goDown = setInterval(motionOfBomb,10);
    } 
 
  });
  • Вопрос задан
  • 21 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Sportrecs Москва
от 150 000 до 200 000 ₽