Должен ли я использовать состояния для реализации меню и экранов для приложения? - PullRequest
0 голосов
/ 20 декабря 2011

Я создаю игру.И на этот раз пытаемся реализовать меню (-> учебник) -> игра-> табло -> игра поверх экранов.

Эти экраны сами по себе очень разные по структуре.Так что я не уверен, что состояния - это 100% правильный подход (насколько я понимаю, состояния хороши для подобных макетов). С другой стороны, у многих из них есть кнопка «Назад», чтобы вернуться в предыдущее состояние, например, в уроке у меня будет запуск игры ивернуться к кнопкам меню и т. д.

Интересно, есть ли четкое решение для такой проблемы?Может быть, есть специальная библиотека для таких случаев?

1 Ответ

0 голосов
/ 20 декабря 2011

Конечные автоматы (не только для визуальных состояний) - хорошее решение для реализации поведения инкапсулированных компонентов, таких как кнопки или - в вашем случае - пункты меню, возможно, даже некоторая логика вашей игры.Их можно описать независимо для каждого компонента, и они помогают организовывать ваши взаимодействия и, таким образом, предотвращать ошибки.

Конечные автоматы трудно обслуживать, однако, когда вы просматриваете целое приложение: взаимодействия обычно многомерны (то есть задействован не только один компонент, но много, и на разных уровнях в иерархии), и когда все различные игроки будут приняты во внимание, конечный автомат скоро станет очень сложным.

По моему опыту, лучше всего использовать подход, управляемый событиями, в сочетании с Model-View-Controllerархитектура для вашей логики приложения, и использовать конечные автоматы на уровне компонентов.Я бы посоветовал взглянуть на некоторые из существующих платформ Model-View-Controller для этого, прежде всего RobotLegs , PureMVC и Parsley (хотя для меня, Parsleyкажется немного менее полным, чем два других).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...