Показать сообщение отдельно
Старый 17.03.2016, 23:43   #2
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Посроение юнитов как в Warcraft 2/Warcraft 3

Тригонометрия.
Сперва вычисляешь ширину и высоту прямоугольника для построения, корень числа юнитов:
var units 5;
var 
Math.ceil(Math.sqrt(units));
var 
Maht.floor(Math.sqrt(units)); 
Далее у тебя есть текущее среднее положение юнитов, и цель куда нужно идти, по сути они есть - центры. Берешь вектор между ними - вот тебе и поворот твоего построения.
Далее немного 2д математики с векторами и будет готово.

Лучше всего такие вещи набрасывать на бумаге, или если оперируешь JS'ом, очень удобно на jsfiddle используя canvas2d делать такие тесты и эксперименты.

Перед построением можешь сортировать список юнитов по их "приоритету", чтобы сперва были ближний бой, а потом дальний.
Если такой подход реализуешь, там уже и придумаешь с разными другими формациями и вариациями.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
impersonalis (18.03.2016), St_AnGer (18.03.2016)