Посроение юнитов как в Warcraft 2/Warcraft 3
Доброго времени суток, Булчане!
Решился я на новый игровой проект спустя долгое время. Хочу запилить стратегию, а так как лучшей в мире стратегией старой школы я считаю только и только Warcraft (Старкрафт крут, но Варик больше мне по душе, другие же вообще не зацепили, разме что Age of Empires 2), то и решил пилить его. В качестве движка выбрал Unity (хочу мультипратформу быструю, в т.ч. и мобилки, давно мечтал сделать хотя бы частично-полноценный Варик без всяких эмуляторов), открыл её для себя заново. За два вечера набросал создание и выделение персонажей, их передвижение в место "тыка". Но вот встала конкретная проблема - хочется реализовать красивые расстановки войск как в тех же Вариках, особенно хочется постигнуть как это делается в третьем Варике. Там персонажи выстраиваются определёнными фигурами (3 перса встают в линию, 4 перса квадратом, 5 - буквой П и т.д., причём всё это относительно угла под которым они шли). Может кто-нибудь подсказать теорию как это сделать? Хотя бы более простой вариант как в варкрафте 2 - там один юнит вставал ровно в тыкнутую току, а остальные выделенные вставали вокруг него. upd Никогда не замечал что в третьем Варике юниты строятся ещё и по типам атак - ближний, дальний, очень дальний. Столько лет играл и никогда не придавал этому значения... Пока хочу реализовать хотя бы простейшее постороение прямоугольником, без выпендрежа и всяких поисков пути, тупо по прямой поверхности. У меня появился топорный "лобовой" вариант - берём первого попавшегося из выбранных юнитов, его назначаем главным, посылаем в тыкнутую точку, попутно узнаём вектор направление движения. И относительно этого ставим других выбранных юнитов по нужной форме, форму соответственно вычисляем исходя из количества выбранных юнитов. |
Ответ: Посроение юнитов как в Warcraft 2/Warcraft 3
Тригонометрия.
Сперва вычисляешь ширину и высоту прямоугольника для построения, корень числа юнитов: PHP код:
Далее немного 2д математики с векторами и будет готово. Лучше всего такие вещи набрасывать на бумаге, или если оперируешь JS'ом, очень удобно на jsfiddle используя canvas2d делать такие тесты и эксперименты. Перед построением можешь сортировать список юнитов по их "приоритету", чтобы сперва были ближний бой, а потом дальний. Если такой подход реализуешь, там уже и придумаешь с разными другими формациями и вариациями. |
Ответ: Посроение юнитов как в Warcraft 2/Warcraft 3
Цитата:
h=ceil(units/w) Аналогичную задачу решаю, когда нужно компактно (таблицей) вывести на экран заранее неизвестное количество объектов Код:
A=floor(sqrt(N)); |
Ответ: Посроение юнитов как в Warcraft 2/Warcraft 3
Цитата:
|
Часовой пояс GMT +4, время: 10:32. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot