![]() |
|
||||||||||
|
|||||
|
Настала необходимость обзавестись изометрическим движком, и вот, решила написать его самостоятельно.
Но тему завела уже не с пустыми руками: http://mydemy.narod.ru/zfw_iso/index.html Сейчас дело обстоит так (там кстати есть два бага). То есть движок сейчас - гексагональный и изометрический. Формулы писала сама. Отсюда и сомнения... (картинки стырены, но ничего коммерческого или хоть немного официального я с ними делать не буду, как сделаю замену - сотру со всех локальных папок )Алгоритм просчета пути - А*. Сцена грузится следующим образом. Создаются слои (спрайты, возможно, уместнее было бы использовать другие объекты из ветки DisplayObject): - некликабельный, для загрузки фона, - слой с объектами На слой с объектами крепятся "гексы" - это пустые спрайты (см. выше), размещенные на точке (0,0). Почему на начале координат? Ну, я уже было написала алгоритм сортировки, но задумалась, а почему бы не сделать ячейки-гексы, отсортированные, как надо, на которые мы будем крепить объекты, соответственно, автоматически находящие свое место в сортировке. (Если криво объяснила, могу переформулировать) Реальные координаты объекта высчитываются отдельно, и спрайт вставляется в гекс с ними (ведь 0 + координата = координата). Сейчас я вижу проблему этого подхода... Но пока не решилась возвращать сортировку. Еще я засомневалась и насчет гексов... Первая проблема на данный момент (помимо багов, которые просто не пофиксены в этой версии) - нормальный просчет гекса, на который кликнули. Нет, ну я даже высчитала формулы прямых, образовывающих верхний и нижний углы гекса. Исходя из этого, мы можем высчитать, лежат ли (mouseX, mouseY) выше/ниже, и, соответственно, более точно рассчитать, по какому гексу кликнули мышкой... Но что-то многовато действий, для простой проверки клика... Почему я вообще выбрала гексы? Ну, они необычные... Да, при движении вертикально вверх, персонаж люто, простите, "виляет попой". Но направления движения в остальном какие-то... естественные, и все не такое рубленное, что ли. Может, это просто мой женский мозг взбунтовался против очевидно более простого решения... А еще гексами можно образовать сетку, не наклоненную под углом 45 градусов, а прямоугольную, как сам экран. И не надо придумывать, чем занимать углы, или как объяснять "туман войны". В общем, в этой программе есть много, возможно, очевидных со стороны, проблем, но я сижу и варюсь в собственных мыслях, так что очень бы хотелось обсудить эти решения с ученым советом флешеров =) Заранее спасибо заинтересовавшимся. Последний раз редактировалось demy; 10.11.2011 в 15:20. |
![]() |
Часовой пояс GMT +4, время: 09:16. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|