Я пишу небольшую игру со змеями в javascript, чтобы я и мои друзья могли играть в нее только в одиночку и копировать наши рекорды. Но когда вы заканчиваете игру, вы должны перезагрузить сайт и не можете просто нажать кнопку типа «Попробовать еще раз», и он перезапустит игру / перезагрузит JavaScript

if(snakeX < box || snakeX > 17 * box || snakeY < 3*box || snakeY > 17*box || collision(newHead,snake)){
    clearInterval(game);
    dead.play();
}

это «игровой» интервал let game = setInterval (draw, 100);

0
Narrox YT

2 ответа

<button id="retry" style="display:none">Retry</button>
function Box() {...}

function Snake() {...}

function Game() {
    this._box = new Box()
    this._snake = new Snake()
    this._retry = document.getElementById('retry')

    this._retry.addEventListener('click', function () {
        this.start()
    })
}

Game.prototype.displayRetry = function () {
    this._retry.style = 'display:block'
}

Game.prototype.hideRetry = function () {
    this._retry.style = 'display:none'
}

Game.prototype.start = function () {
    this.hideRetry()
    this._snake.alive()
    this._interval = setInterval(function () { this.draw() }, 100)
}

Game.prototype.check = function () {
    var bounds = this._box.bounds
    var position = this._snake.position

    return position.x < bounds.xMin || position.x > bounds.xMax || position.y < bounds.yMin || position.y > bounds.yMax || this._snake.hasCollidedWithSelf()
}

Game.prototype.draw = function () {
   // ...

   if (this.check()) {
       this.end()
   }
}

Game.prototype.end = function () {
    this._snake.dead()
    this.displayRetry()
}

используйте location.reload ()

<button onclick="location.reload();">Try again</button>
58511592