Есть условие которое сверяет координаты героя с координатами других объектов(условия столкновения и тд)
Когда герой двигается его координаты меняются изменения чекаю через 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");};