![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2010
Сообщений: 90
|
Всем привет. Не могу найти способ задать позиции для юнитов, состоящих в одном взводе. Например, 10 человек должны стоять на небольших расстояниях друг от друга кучкой, но не цепочкой. Нужно, чтобы они стояли в случайных позициях, но не попадали друг на дружку. Фиксированными коробками и другими фигурками получается, но так, чтобы рандомно и без перекрытия друг друга, никак не выходит. Для примера, подобный способ используется в такой игре, как Dawn of War 2. Подскажите, пожалуйста, алгоритм или если есть у кого пример такого кода.
|
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Пусть у каждого юнита будет своё положение в коробке, к которому он будет идти, обходя препятствия и другие юниты. В DoW первых, кстати, оно глючит постоянно, так что задача та ещё %)
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
|
[+3 31.07.12]
[+1 27.08.13] |
Создайте двухмерный массив, в котором значением массива будет объект с координатами центра сектора как на шахматной доске, с шириной и высотой которые равны необходимому минимальному расстоянию между юнитами. Суммарная ширина и высота ячеек естественно не должна быть больше ширины и высоты сцены.
Рандомное расположение юнитов делается путём генерирования случайных чисел. Юниты буду раскиданны по сетке при обычном рандоме ближе к центру. Также можно уменьшить ширину и высоту до половины, четверти, и т.д. минимального расстояния, но при генерации нужно тогда будет добавить проверку на отсутствие пересечений с полями других.
__________________
Хоть ты эту красоту не назовёшь граблями, всё равно никогда не наступай на них. |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:04. |
|
|
« Предыдущая тема | Следующая тема » |
|
|