Код проверки столкновения
function collides(player1, player2) {
var hit = !(player1.position[0] + player1.width < player2.position[0] ||
player2.position[0] + player2.width < player1.position[0] ||
player1.position[1] + player1.height < player2.position[1] ||
player2.position[1] + player2.height < player1.position[1]);
if(hit) {
return true;
} else {
return false;
}
}
Где player1, там первый объект, где player2- второй объект.
Если два объекта столкнулись, тогда возвратится значение "true".
Вот например:
if(collides(player, block)) {
console.log("!!!");
}
НО!
Оба этих объекта должны выглядеть примерно так:
{
width: 100,
height: 100,
position: [
100,
100
]
}
Т.е. иметь width, height и массив position с координатами.
Этот код можно засунуть в таймер (вечный цикл), чтобы ПОСТОЯННО, когда персонаж касался блока выводилось сообщение:
setInterval(function() {
if(collides(player, block)) {
console.log("!!!");
}
}, 0);
Но, как останавливать персонажа при соприкосновении с блоком я ещё не знаю, вот сейчас сижу и думаю...
А пока, это- всё чем я могу помочь, вот сейчас специально авторизовался, чтобы ответить...
|