![]() |
|
||||||||||
|
|||||
|
Регистрация: Apr 2012
Адрес: Санкт-Петербург
Сообщений: 12
|
Приветствую всех заглянувших)
Пишу игру потихоньку, обучаюсь заодно as3, с MVC вроде бы разобрался отчасти, но! Есть у меня MVC(хотя и не MVC уже оно) пространства(изометрического поля), с использованием as3isolib . Сначала пытался делать по MVC, но из-за специфики библиотеки, не смог грамотно настроить связи.. пришлось оставить контроллер, и всё остальное запихать во вьюху... вроде бы уже и свыкся, но парит, что слишком много всего в 1 классе у меня.. вроде бы ещё практически ничего и нету, а фаил Вьюхи у меня уже на 500+ строк..ну не суть. Вроде сделал движок для пространства(статических объектов) и тут пора бы персонажа ввести наконец-то, а здесь начались трудности, не понимаю как бы мне сделать отдельный MVC для персонажа, ведь общий viewPort (всё, что находится на сцене в изометрическом виде), сортировка, находится в "MVC" пространства, следовательно, чтобы добавить новый слой с персонажем нужно каким то образом дёргать что-то там.. т.е. во-первых, нужно передать Сам объект, и как его потом контролировать, если вьюха Персонажа уже и не выполняет особых действий получается? в общем я в печали) Само собой я могу в "MVC" Пространства запихать и персонажа, Но очень этого бы не хотелось делать) Проблему свою выразить более чётко не смог, но хотелось советов, как быть (по теме совмещения AS3isolib с MVC) Последний раз редактировалось KirillKobyzev; 07.05.2012 в 23:43. |
|
|||||
|
[+4 06.05.14]
|
У вас полюбому должна быть архитектура ( тоесть нужен основной контроллер полюбому ) :
GlobalController.as работает с любым из видов ( нужных ) , держит все модели ( нужные ему ) , держит другие контроллеры. И тогда вы из вида игры например диспатчите событие главному контролю о том, что вид меняется, а главнй контроллер отправляет запрос в другой вид или в другую модель, о которой не знает вид отправитель. Тоесть в вашем случае получится , что перс - отдельный вид, с ним можно работает отдельно, но благодаря свзяи общего контроллера, на него могут воздействовать любые другие объекты, точно так же как и он сам, при этом не зная их напрямую. чтобы все работало как вы хотите.
__________________
Марк Tween |
|
|||||
|
Регистрация: Apr 2012
Адрес: Санкт-Петербург
Сообщений: 12
|
2 in4core
Есть такой контроллер,да, но я не понимаю, что передавать в Контроллер плоскости.. Сам объект? координаты постоянно передавать? в контроллере плоскости, к примеру, есть проверка объектов при перетаскивание. Там создаётся битмапка и отрисовываются все объект, после чего по цвету проверяется, мне придётся к примеру отсылать запрос в плоскость на проверку битмапы и т д. мб расширить вьюху Персонажа от плоскости? а контроллер и модель от базовых. Или вытаскивать проверку на битмапы отдельно... мне кажется, что сейчас момент когда я понимаю, что всё через жопу и нужно всё переделывать, потому что я заранее об этом не побеспокоился.. или же пихаться всё в mvc плоскости Добавлено через 8 минут Цитата:
Последний раз редактировалось KirillKobyzev; 08.05.2012 в 00:23. |
|
|||||
|
[+4 06.05.14]
|
Ну расширятся от... это тоже какое то новшество* в вашем случае. У меня ни один контроллер или модель не расширяется ни от чего, хотя знаю есть ситуации когда это требуется для компактности.
Мне кажется вам надо абстрогироваться от понятия *контроллер плоскости* и разбить приложение на более БОЛЬШИЕ но осмысленные куски. Типа *главный контроллер* , *контроллер перса* , *контроллер самой игры, опять же глобальный* ну и т.п. Хотя может это и не лучшее решение в вашем случае. 500+ строк кода - это нормально, да хоть 1500+ если оно того заслуживает. Далее Цитата:
Цитата:
Ну отсылайте запрос на проверку и что в этом плохого? Пока что все сумбурно, сложно как то сооринтировться в вашей проблеме
__________________
Марк Tween |
|
|||||
|
Регистрация: Apr 2009
Адрес: Armenia , Yerevan
Сообщений: 145
|
Советую Изучить Robotlegs и на нем постаратся строить приложение. Если будет сложно тагда puremvc лехче его попробуйте.
__________________
Urartu is a neoHittite and ProtoArmenian kingdom !! |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:43. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|