![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: May 2012
Сообщений: 166
|
Здравствуйте, задался вопросом как сделать изометрическую сетку для контроля за игровым полем. Подскажите пожалуйста с чего лучше начать, раньше не пробовал такое делать, как то обходился без нее, но похоже на ней все игры строятся... может ресурс подскажите какой где все разжевано?
__________________
Выражаю благодарность всем, кто помогают новичкам. Ваша бескорыстная помощь внушает уважение. |
|
|||||
|
Регистрация: Jan 2011
Сообщений: 200
|
http://www.flasher.ru/forum/showthread.php?t=182390
http://www.flasher.ru/forum/showthread.php?t=152653 |
|
|||||
|
Регистрация: May 2012
Сообщений: 166
|
Предположим создал я 2 мерный массив - отобразил сетку, поместил в контейнер который деформировал в изометрическую форму, как лучше при помощи всего этого контролировать нахождение объектов в том или ином квадрате? hitTestObject? или есть способ получше?
__________________
Выражаю благодарность всем, кто помогают новичкам. Ваша бескорыстная помощь внушает уважение. Последний раз редактировалось Tetraeon; 20.11.2012 в 17:34. |
|
|||||
|
Регистрация: Aug 2012
Сообщений: 297
|
Попробуй так:
Есть два массива: в одном находятся объекты, в другом координаты. Через цикл, в котором будет массив с объектами, создаёшь внутри условие, которое проходит по массиву с координатами. Но я думаю, что в этом примере есть какая-то неправильность, до которой я пока что не могу догадаться. Кажется догадался: у определенного объекта будет определенный индекс. Так как я хочу сделать так: if(arrayObject[i].x == arrayCoordinates[i]), то сравнение будет с теми же координатами, а не сначала. |
|
|||||
|
Регистрация: Jan 2011
Сообщений: 200
|
у меня используется гексагонная сетка. просто использую координаты самих гексов 0:0, 1:0, 0:1, 2:0 итд. по ним, зная размеры гекса, без проблем нахожу глобальные координаты. не пойму, в чем проблема контролировать? есть сетка 5 на 5 допустим. объект в координате 3:2 знаем размер шага сетки, знаем координаты сетки - переводим в глобальные ставим объект.
|
|
|||||
|
Регистрация: May 2012
Сообщений: 166
|
Я еще на занимался поиском координат объекта находящегося на сетке, но представляю пока что только 1 вариант: сканирование 2 мерного массива через 2-й цикл и проверку на соприкосновение через hitTestObject (правда косяк этого варианта в том что объект не должен задевать другие ячейки). С установкой нового объекта в определенную ячейку проблем нет.
__________________
Выражаю благодарность всем, кто помогают новичкам. Ваша бескорыстная помощь внушает уважение. |
|
|||||
|
Регистрация: Jan 2011
Сообщений: 200
|
Не понимаю, зачем hitTestObject. Используйте сетку для определения конечных координат точек перемещения объекта, а не текущих. Есть начальная точка - ячейка, в которой находимся. Есть конечная - куда идем. Строим путь по ячейкам, далее можно вообще забыть про сетку, просто провести объект из начальной в конечную по построенному пути.
|
|
|||||
|
Регистрация: May 2012
Сообщений: 166
|
У меня задача сделать "конструктор карты" для этого я решил сделать сетку для учета свободных или занятых слотов. Объекты размещаемые на карте будут занимать разное количество ячеек как по X так и по Y. Я решил использовать в качестве маркера будущего объекта символ круга котрый будит занимать 1 яейку, при размещении этого символа и в зависимости от его типа будит идти проверка соседних ячеек (свободная или нет) если проверка пройдена будит установленна картинка объекта и все пересекающиеся ячейки будут "заполнены". Я пока только до такого варианта допер.
__________________
Выражаю благодарность всем, кто помогают новичкам. Ваша бескорыстная помощь внушает уважение. |
|
|||||
|
Регистрация: Jan 2011
Сообщений: 200
|
легче ввести многомерный массив занятости, либо оптимизировать под это массив сетки.
например если сетка 10Х10, то получаем массив на 10 элементов, элемент каждого это еще массив на 10 элементов. допустим начало сетки идет с левого нижнего угла, это координата 0:0. ставим в этот угол абстрактный дом, размером 2 на 1 получается он занимает клетки-точки с коордаинатами 0:1 и 1:1. берем и данные элементы в нашем массиве ствим в ноль, остальные элементы -1 , т.е. не заняты. таким образом вы всегда будете знать, какие ячейки заняты, а какие нет. в этот массив можно даже ввести типы объектов, расположенные на карте. поищите книжку Flash Multiplayer Virtual Worlds там целая глава этому посвящена |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:31. |
|
|
« Предыдущая тема | Следующая тема » |
|
|