Как справиться с игровым потоком?

1

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

Иногда изменения в представлении одинаковы для нескольких частей кода.

Каков наилучший способ обработки игровых состояний в XAML/С# или это хороший способ справиться с состояниями игры?

Теги:
xaml
windows-phone

2 ответа

1
Лучший ответ

Попробуйте шаблон наблюдателя

При изменении происходит обновление модели. Каждый элемент игры должен быть представлен в модели как объект. В представлении должны быть объекты, которые изменяются в зависимости от объектов в модели. Это наблюдатели. Вы регистрируете всех наблюдателей с тем, что они наблюдают при их создании (я думаю, что С# называет этих делегатов, хотя вы можете создавать собственную систему наблюдения)

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

Если вы никогда не писали один за другим, вам действительно нужно сделать это один раз. Из этого требуется много тайны. Люди делают звук более сложным, чем есть на самом деле.

http://msdn.microsoft.com/en-us/library/ee817669.aspx

http://en.wikipedia.org/wiki/Observer_pattern

0

Вот что я бы сделал:

Позвольте самому обновить представление, он должен перекрасить n кадров в секунду вправо? Представление будет взаимодействовать с моделями, а не наоборот. View не волнует, обновлены ли модели, он просто берет необходимые данные из них и переписывает соответственно каждому кадру.

  • 0
    Это не игра с высокой частотой кадров, это своего рода карточная / классическая игра

Ещё вопросы

Сообщество Overcoder
Наверх
Меню