В моей игре есть участки земли со зданиями (дома, ресурсные центры). В таких зданиях, как дома, есть арендаторы, комнаты, дополнения и т. Д., И есть несколько значений, которые необходимо смоделировать на основе всех этих переменных.
Теперь я хотел бы использовать AndEngine для внешнего интерфейса и создать еще один поток для расчетов симуляции (возможно, позже включу ИИ в этот поток). Это так, что один целый поток не выполняет всю работу и вызывает проблемы, такие как блокировка. Это вводит проблему параллелизма и зависимости .
Проблема с валютой - это мой основной поток пользовательского интерфейса, и поток вычислений должен был бы получить доступ ко всем объектам моделирования. Поэтому я должен сделать их поточно-ориентированными, но я не знаю, как хранить и структурировать объекты симуляции, чтобы сделать это возможным.
Проблема зависимости заключается в том, что для вычисления значений мои вычисления зависят от значений других объектов.
Как лучше всего связать мой объект-арендатор в здании с моими расчетами? Жестко закодировать это в класс арендатора? Что такое хороший способ сделать «хранилище» алгоритмов, чтобы их можно было легко настроить?
Простым ленивым способом было бы объединить все в класс, который содержит все объекты, такие как участки земли (которые в свою очередь владеют зданиями и так далее). Этот класс также будет содержать состояние игры, такое как технология, доступная пользователю, пулы объектов для таких вещей, как спрайты. Но это ленивый и опасный способ, верно?
Редактировать: я смотрел на Dependency Injection, но насколько хорошо он справляется с классом, который содержит другие объекты? т. е. мой участок земли, со зданием, в котором есть арендатор и множество других ценностей. DI выглядит как боль в заднице с AndEngine.