@Anonymous_toaster

Почему функция одноразовая?

Делаю игру, есть такая функция
const GuardAttack = ()  => {
let isFly = true

ctx.drawImage(bull,bas.x,bas.y)
 if(isFly)bas.x+=10
console.log(guard.alert)



 


				world.push(bull)
if ((bas.x + bull.width >= agent.x) && (bas.x <= agent.x + agentImg.width) && (bas.y + bull.height >= agent.y) && (bas.y 
 <= agent.y + agentImg.height)){
 	  guard.alert= false
 	isFly = false
   agent.y+=200
  bas.x= 0
  bas.y = 0

  isFly = true


 	console.log(agent.health)
if(agent.health >= 0) {
console.log("он попал")
	return agent.health-=1
}

let av = document.querySelector("#fail")
av.play()
agent.y += 300
agentImg.src = "agent_dead.png"
bas.x = 0

}
}


Эта функция работает, если guard.alert == true, собственно, так и сделана проверка, надо ли стрелять. Так вот, если игрок встанет так, что параметр guard.alert станет true, он выстрелит, но только один раз, а чтоб выстрелил второй, нужно сделать параметр guard.alert сначала false а потом true. Как сделать, чтобы он много раз стрелял, пока guard.alert == true. (функция вызывается в другой функции, которая находится под requestAnimationFrame)
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ответы на вопрос 1
maxpred
@maxpred
Frontend dev
while ( guard.alert === true )  {
  if ( conditions )  myFunc()
}


Не?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы