IgorBee
@IgorBee
JS,VBS,3D.Web с 07.2015

Как на JS асинхроно отслеживать улсовие if else?

Есть условие которое сверяет координаты героя с координатами других объектов(условия столкновения и тд)

Когда герой двигается его координаты меняются изменения чекаю через setInterval котрый каждый 50мс запускает эту проверку ,но у него свои минусы такие как нагрузк на CPU (при большой загруженности функций) так и свои косяки в отработке условий.

if( heroObj.position.left+heroObj.position.right>=rockObjs.position.left &&  //Слево
    heroObj.position.top+heroObj.position.bottom<=200 &&
    heroObj.position.top+heroObj.position.bottom<=280 /* &&
	heroObj.position.left<=rockObjs.position.right*/){
	  heroObj.position.top=120;     console.log("moree") ;
    
    }else{heroObj.position.top=250;  console.log("down");};
  • Вопрос задан
  • 272 просмотра
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Вместо setInterval попробуйте использовать requestAnimationFrame() – callback будет вызываться часто, но в нём проверяйте время от предыдущего «рабочего» срабатывания, чтобы прошло больше 50мс.

Приведённые вами проверки условий не должны быть сколько-нибудь заметными для CPU, если только вы их не для миллиона пар объектов прогоняете каждый раз.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы