Предложение по гибкой игре общения между сущностями - PullRequest
3 голосов
/ 16 ноября 2010

В настоящее время я разрабатываю игру Flex, которая является своего рода настольной и карточной игрой.Думая о разработке других игр с использованием сущностей из этой, я выбрал создание своих сущностей, отделенных от игры и даже от других игровых сущностей.В результате в настоящее время я использую события для связи между своими игровыми сущностями.

Игровые сущности, в моем случае, относятся, например, к компоненту руки игрока, который может получить карту или отправить карту другому неизвестномуКомпонент пользовательского запроса и раздачи событий.Например, то же самое может случиться с компонентом держателя колоды карт.

Вначале этот подход казался хорошим дизайнером, но через некоторое время в моем классе игрового контроллера появилось много функций-обработчиков событий, которыеначал выглядеть плохо для меня.

Моя текущая идея - создать менеджер игровых событий вместе с моим игровым контроллером для обработки событий и очистки кода контроллеров.

Наконец, я не уверен насчетмоё решение о дизайне изложено выше, поэтому я хотел бы узнать о вас, кто из вас хотел бы рассказать о коммуникационном дизайне для этой игры.

Надеюсь, ответы на этот вопрос могут помочь и другим.Заранее спасибо.

1 Ответ

0 голосов
/ 13 ноября 2011

Можете ли вы разбить его на несколько классов контроллеров? В приложении с вкладками я использую отдельный контроллер для каждой вкладки. Разбить ваше приложение на разумные кусочки будет не так сложно, но очень возможно.

Одно предложение может быть:

  • MainController - управляет «оболочкой» игры, такой как запуск приложения, меню, заставки и т. Д. *

  • GameController - обрабатывает изменения состояния и пользовательские события, такие как по очереди, проверка условий выигрыша, обновление результатов и т. Д. *

  • EntityController - Связь между вашими игровыми сущностями (картами, колодами и руками?).

Мне трудно выносить слишком много суждений с таким небольшим количеством информации о вашей игре, но я надеюсь, что вы поняли.

Кроме того, если вы хотите сократить стандартный код обработки событий, я поддержу идею использования фреймворка. Я слышал много хорошего о роботолегах и лично использовал Swiz в нескольких проектах. У Swiz есть отличное, ненавязчивое посредничество в событиях swizframework.org .

...