Пока команда не работает с задержкой JavaScript - PullRequest
0 голосов
/ 24 февраля 2019

Я пытаюсь сделать простую игру, похожую на кликер cookie, чтобы при нажатии на кнопку запускался цикл while, который увеличивает cookie (x) плюс количество кликеров, которое у вас есть каждую секунду.

	var x = 0;
	var c = 0;

	text = document.querySelector("Header > p");
function Yeet(Add){
	x=x+Add;
	text.innerHTML = x;
}

document.querySelector("header > img").addEventListener("click",Doggo);
function Doggo (){
	Yeet(1);
}
document.querySelector("#clicker1").addEventListener("click",Clicker1);

function Clicker1 () {
	if (x > 9) {
	Yeet(-10);
	c++
	console.log(c);
	}	
}
while (c > 0) {
// statement

setInterval(Yeet(c), 1000);
}
<html>
	<title>
		Cookie
	</title>
			<link rel="stylesheet" href="">
</head>
<body>
	<header>
		<img src="Img/cookie.png" alt="Cookie">
		<p>0</p>
		<button id="clicker1">Clicker 10 cookies 0.1cps</button>
	</header>
	<script src="Script.js"></script>
</body>
</html>

1 Ответ

0 голосов
/ 24 февраля 2019

while цикл не нужен и не ждет setInterval() вызова.Код в вопросе немедленно вызывает Yeet(c).

Вы можете определить функцию, которая будет передана в setInterval, определить переменную для ссылки setInterval(), вызвать clearInterval(reference), если c равнодо 0

function handleInterval() {
  if (c === 0) {
    clearInterval(interval)
  } else {
    Yeet(c)
  }
}

let interval = setInterval(handleInterval, 1000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...