Столкновение объектов
Здравсвуйте.
Подскажите пожалуйста Есть ф-я, которыя считает расстояние от одного объекта до другого function getDistance(x1, y1, x2, y2) { var dx = x1 - x2; var dy = y1 - y2; return Math.floor(Math.sqrt((dx * dx) + (dy * dy))); }; Как можно переписать эту ф-ю, если объектов будет 5 или 10? |
Не очень понятно, как при этом должна работать данная функция. Возвращать среднее расстояние? Возвращать массив расстояний? Сумму расстояний?
|
Цитата:
Потом я сравниваю это расстояние с суммой их радиусов и если дистанция(то, что возвращает ф-я) меньше, чем сумма радиусов, то произошло столкновение. |
Цитата:
Цитата:
|
Цитата:
Но я не знаю, как правильно написать условие внутри ф-и... |
Просто при движении циклом проверяй расстояние для каждой пары объектов. И всё.
|
Цитата:
Допустим я имею 5 объектов. И мне проверять для о1 с о2, о1 с о3, о1 с о4, о1 с о5, потом о2 с о3, о2 с о4 и ... Вроде, как-то не серьезно как-то получается :( |
Ну да, факториал n действий будет. По другому не выйдет.
Вы только это циклом сделайте, руками не пишите... |
Цитата:
|
Мда. Как же вы игру с такими познаниями пишете.
//храните объекты в массиве, тогда можно будет сделать так: for (var i=0; i!= arr.length; ++i) //arr - наш теоретический массив for (var j= i; j!= arr.length; ++j) if (getDistance(arr[i][0], arr[i][1], arr[j][0], arr[j][1]) < someValue) { // если взрыв alert("Ба-бах!"); } |
Часовой пояс GMT +3, время: 10:42. |