Гексагональная доска
|
|
Sertin | Дата: Вторник, 16 Апреля 2013, 23:08 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Нужно помощь в создании гексагональной доски или ссыль на урок по теме. гексагональная доска 9х13 Цель такая, доска с 1 пешкой, перемещение по клику, поочередно на одну клетку, соприкасающейся полигоном, с начальной ячейкой. (пример Герои) Совершенно не представляю как это сделать в Udk. Нужен простенький пример перемещения по клику, на указанный полигон... Помогите
Сообщение отредактировал Sertin - Вторник, 16 Апреля 2013, 23:17 |
|
| |
lentinant | Дата: Среда, 17 Апреля 2013, 00:36 | Сообщение # 2 |
ленивый программист
Сейчас нет на сайте
| Вообще, вариант с отдельными шестиугольниками не самый удобный с точки зрения дизайна - каждый придется выставлять вручную. Хотя, есть вариант спавнить их с кода. Но если тебе этот вариант подходит, алгоритм будет выглядеть примерно так.
Для начала, тебе нужно реализовать интерфейс с мышкой (не просто отображением мышки, а конвертированием ее двухмерных координат в трехмерные игровые). Много полезного можно взять, например, отсюда. Там же есть код для отслеживания актора, который сейчас находится под мышкой.
Припустим, ты модифицировал код, чтобы камера была фиксированной, ПлеерКонтроллер - не привязанным к павну (впрочем, не обязательно), ну и уровень с шестигранниками у тебя есть. Также тебе понадобятся классы павнов юнитов и их AI-контроллеры с уже прописанными командами типа "Переместиться к координате A). В PlayerController создаешь переменную активного юнита или его контроллера. Перегружаешь StartFire (или создаешь свою функцию, и привязываешь ее к левой кнопке мыши), делаешь проверку на доступность клетки (например, расстояние между активным юнитом и выделенной клеткой не должно превышать определенное значение), если проверка дала позитивный результат, даешь контроллеру приказ двигаться к координате выделенной клетки.
Когда-то тут будут ссылки на крутые проекты. Или нет.
Сообщение отредактировал lentinant - Среда, 17 Апреля 2013, 03:10 |
|
| |
Sertin | Дата: Четверг, 18 Апреля 2013, 05:27 | Сообщение # 3 |
был не раз
Сейчас нет на сайте
| Цитата (lentinant) Припустим, ты модифицировал код, чтобы камера была фиксированной, ПлеерКонтроллер - не привязанным к павну (впрочем, не обязательно), ну и уровень с шестигранниками у тебя есть. Также тебе понадобятся классы павнов юнитов и их AI-контроллеры с уже прописанными командами типа "Переместиться к координате A). В PlayerController создаешь переменную активного юнита или его контроллера. Перегружаешь StartFire (или создаешь свою функцию, и привязываешь ее к левой кнопке мыши), делаешь проверку на доступность клетки (например, расстояние между активным юнитом и выделенной клеткой не должно превышать определенное значение), если проверка дала позитивный результат, даешь контроллеру приказ двигаться к координате выделенной клетки.
А можно поподробнее?
|
|
| |
Avatarus | Дата: Четверг, 18 Апреля 2013, 09:42 | Сообщение # 4 |
участник
Сейчас нет на сайте
| Цитата (Sertin) А можно поподробнее? Да куда уж подробней? И так уже все что надо расписали. Или ты надеешься, что за тебя код напишут? Документацию в зубы и вперед, не надейся ни на кого. А вообще не надо из пушки по воробьям стрелять. Бери Юнити, в UDK лучше реалтаймовые игры делать.
Фанатский сиквел The Legend of Zelda - Twilight Princess Website ◄ ► Channel
|
|
| |