![]() |
сетка ячеек
Нужно создать приложение "карта", которая будет состоять из ячеек, расположенных в виде сетки с возможность их добавления или удаления, данные хранить в XML, должна быть возможность сохранения изменений. Вот я, собственно не понять как реализовать эту саму сетку.Как-то цыкл for не совсем, мне кажется, подходит. Посетив множество страниц в интернете пришла такая идея: редактируемую сетку можно сделать используя grid и mxml? Правильно ли это, учитывая задание? Удобно ли это,учитывая задание?
|
Цыкл for, по-моему, очень даже =)
|
Это получается один цикл for будет вложен в другой?
|
Как сделаете :о) Можно и рекурсией, можно и одним циклом с дополнительным счетчиком. Но вам проще вложенным. А что на карте то изображено?
|
Конечно.
Нет, конечно, вы можете и grid использовать, если умеете. Только програмно создавать ячейки для grid'а не чуть не легче, чем пройтись for'ом и нарисовать сетку спрайтов. Но, если вы делаете, что-то типа редактора карты для игрушки, то в целом, с помощью flex'а удобно интерфейс редактора закодить. |
Цитата:
|
Тогда точно во флексе не надо. При больших размерах грид будет тормозить. Лучше ужа на спрайтике отрисовать.
|
Я себе редакторы карт во флексе делаю. Кидаю канвас, на него спрайт, в спрайте карта. Сверху менюха - сохранить/загрузить - все дела. Снизу, скажем, горизонтальный таб навигатор с элементиками, таскаемыми drag'n'drop-ом. Интерфейсики в флексе накидывать - удовольствие.
|
Ну если грамотно подходить, то флекс для админок самое то. Но использовать их датагрид для больших карт - как минимум неудобно.
|
а я датагрид и не использую в самой карте. Канвас, в канвасе чистый as3.
|
Я человек с никаким опытом,
Цитата:
|
Мне кажется, что если вы "человек с никаким опытом" и для вас тяжеловато решить такую задачу, как отрисовать сетку из квадратных тайлов, то с такой задачей, как "ячейки будут разных типов(земля,вода,песок) и на определенные типы можно будет высаживать определенные растения)))" вы не справитесь. Все равно, что отправиться в поход по горам в шлепанцах, гавайке и пустым рюкзаком за плечами.
|
Код AS3:
Цитата:
Добавлено через 2 минуты Даже с элементарными вещами |
Угу - то что надо, размер клетки - тоже в константы. Ну и сама клетка может быть отдельным классом.
|
Цитата:
|
Ну, не спорю, такая учебная задача по большому счету ничем не отличается от любой другой. Я ни в коем случае не хотел вам нагрубить. Надо было расширить свой пост. Я хотел сказать, что лучше быть последовательным, начать с изучения языка, структур данных, классических приемов.
В любом случае я рад за вас, что вы самостоятельно справились с задачей и с удовольствием помогу вам, если у вас будут конкретные вопросы или ошибки в коде. "в отдельном классе должно реализовываться то, что во внутреннем цикле for?" - да, именно так. Обычно это удобно. |
Не могу понять. Делаю вот так
class VirtualMap Код AS3:
class CellMap Код AS3:
|
так рисуете вы на переданном спрайте, а добавляете свой. Странную вы схему придумали.
|
Переделал, работает
Код AS3:
Код AS3:
|
Вы подумайте, что вы делаете? У вас есть варианты, я вижу как минимум 2:
1) У вас есть массив описаний клеток (х,у,тип), бегать по нему и по полученной инфе рисовать все в один спрайт. 2) У вас есть массив готовых клеток нужного типа (или подкласса от основного класса клетка). Бежим и все подряд добавляем в главный спрайт. Здесь надо какую-нить фабрику придумать. |
Кстати говоря, информация по ячейкам и объектам хранится в придуманном XML
Код:
<?xml version="1.0" encoding="UTF-8"?> |
CellMap должен просто отрисовывать квадрат, в СВОИХ нулевых координатах. Он сам — Спрайт, зачем создавать еще один спрайт, потом создавать спрайт CellMap только чтобы отрисовать что-то в первом спрайте?.. Циклом создаете клетки (как отдельные объекты) и размещаете их в контейнере в координатах, соответствующих позиции цикла. То есть классу CellMap вообще никаких параметров отдавать не надо было. Это спрайт, который умеет СЕБЯ закрашивать.
Вот если хотите, можно отдавать ему Тип клетки (TYPE-CELL), и пусть закрашивает себя водой или сеном, как прикажут. О фабрике пока рано говорить, мне кажется. С абстрактным делением задач по классам бы разобраться для начала.. |
| Часовой пояс GMT +4, время: 15:35. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.