Смена экранов игры (комментарии)
Это сообщение сгенерировано автоматически.
апну ка я статью раз не хотят публиковать, мож кому пригодится, не зря же ее писал.
Кроме того переписал часть текста чтобы лучше читалось (надеюсь)
Посмотри на GameStateManagment из семплов XNA. Ваш вариант например не поддерживает переходы между экранами.
war_zes
> Смена экранов игры (комментарии)
Неужеле ктото реально делает WallOfSwitch ?
В методе init нет никакого смысла - для этого есть конструктор обьекта.
При смене "модулей" на место старого можно сразу втыкать новый, а у старого запускать уничтожение в отдельном потоке чтобы время зря не тратить.
Также в нем нету поддержки сохранения\загрузки состояния модуля.
Вообще статья будет полезна разве что тем кто только начал изучать ООП и им нужен хороший пример:)
war_zes
Открой для себя КА
Mephistopheles
> Неужеле ктото реально делает WallOfSwitch ?
Тут в соседней теме чел спросил как сделать мейнлуп, ему написали свитч
Mephistopheles
> В методе init нет никакого смысла - для этого есть конструктор обьекта.
Сами модули не уничтожаются (ну у меня точно, но этого требует архитектура, у меня существуют все модули, а вот активный один). А так, это пример, можно и в конструкторы
innuendo
> Открой для себя КА
Это еще что за сокращение?
war_zes
> > Открой для себя КА
> Это еще что за сокращение?
FSM
Mephistopheles
> Неужеле ктото реально делает WallOfSwitch ?
Это достаточно эффективное решение, когда у тебя допустим 3 вида экранов (меню, игра, и геймовер), лучше сделать свич на 10 строк, чем колотить простыню говноклассов, пытаясь сделать РАСШИРЯЕМО и чтоб ОРХЕТЕКТУРА.
kvakvs
> когда у тебя допустим 3 вида экранов (меню, игра, и геймовер)
не кажется что 3 както маловато для стены из кейсов?
kvakvs
> пытаясь сделать РАСШИРЯЕМО и чтоб ОРХЕТЕКТУРА.
Ну если для тебя написание нормальной архитектуры - пытка, то ты выбрал не ту профессию
Приделать бы диаграмму классов (например, такую) и активностей цены бы статье не было. Это в десять раз сократит время врубания в материал и код уже почти не нужен. А то да, первым делом при программировании на С++ новички ни о чём кроме стены свитчей думать не могут.
Zefick
> Приделать бы диаграмму классов (например, такую) и активностей цены бы статье
> не было. Это в десять раз сократит время врубания в материал и код уже почти не
> нужен.
+1. Одного взгляда на картинку мне хватило, чтоб понять о чем речь в статье, а в коде разбираться было лень.
Mephistopheles
>Ну если для тебя написание нормальной архитектуры - пытка, то ты выбрал не ту профессию
Ты великий программист коль любишь стрелять из пушки по воробьям. )
Блин, а у меня все по-другому реализовано...
Есть SceneManager c тремя функциями.
- подгрузить асинхронно ресурсы для сцены с ID + каллбэк
- создать сцену с ID + каллбэк
- запустить сцену.
Сам базовый класс сцены содержит в себе функцию для возврата NSArray * ресурсов, + функции создания / удаления объектов + по мелочи.
Работает на дрюшлом кокосе (переключение сцен в самом двиге сделано через фекальное место) - но работает как часы. Захотели сделать экран загрузки - легко встроить.
Как это работает?
Захотели мы при нажатии кнопки перейти на другую сцену - вызываем анимацию фейда текущей сцены, параллельно грузим ресурсы экрана загрузки.
По завершении загрузки вызывается каллбэк c показом SceneLoading, в экране загрузки есть поле - сцену с каким ID грузить следующей.
Соответственно при показе сцене loading начинаем грузить ресурсы следующей сцены, по завершении ее показываем.
Разумеется присутствует поле свитчей - какую сцену грузим по ID.
CasDev
В Obj-C вообще халява, там уже есть NavigationController ничего больше придумывать не нужно )
Mephistopheles
> Ну если для тебя написание нормальной архитектуры - пытка, то ты выбрал не ту
> профессию
Архитектура немного не в том месте делается ;)
Ряд кейсов это всего-лишь ряд кейсов, простой, управляемый, понятный.
И да, у меня с профориентацией всё в порядке.
Тема в архиве.