Требуется отследить
изменение состояния столкновения в сравнении с предыдущим шагом.
Запоминайте где-то "текущее" состояние
var isCollided = false; // изначально нет столкновения
На каждой итерации – будь то по
setInterval()
или
requestAnimationFrame()
– проверяйте, есть ли столкновение сейчас. И сравнивайте с предыдущим.
const isNowCollided = checkIfCollided(); // как-то проверяем, есть ли сейчас наложение
if (isNowCollided && !isCollided) { // впервые столкнулись!
// alert! alert!
} else if (!isNowCollided && isCollided) { // выехали из зоны
// всем неинтересно
} else {
// вообще без новостей
}
isCollided = isNowCollided;