У меня есть игровой цикл, который повторно рисует игровое поле после того, как каждый игрок совершит движение. Я хотел бы приостановить основной цикл и подождать, пока игрок разместит кусок на доске, т. Е. Запускает событие мыши вниз на холсте. Прямо сейчас игровой цикл продолжает перерисовывать доску. Есть ли способ дождаться, когда игрок переместится, прежде чем продолжить цикл?Подождите, пока пользователь не выйдет из игры, прежде чем продолжить цикл игры
var initGameLoop = function() {
player1 = new humanPlayer();
player2 = new computerPlayer();
while (gameState) {
redraw();
player1.acceptMove();
redraw();
player2.acceptMove();
}
};
var humanPlayer = function() {
this.acceptMove = function() {
canvas.addEventListener("mousedown", addPieceWithMouse);
};
};
var computerPlayer = function() {
this.acceptMove = function() {
computerMove();
};
};
Это 'while' петля подозрительна, и, вероятно, что нужно изменить. Узнайте о асинхронном программировании в JavaScript (обратные вызовы, события, обещания ...). Это слишком широкая тема для ответа StackOverflow. – Touffy