Я занимаюсь разработкой двумерной космической игры для мобильных устройств, но она становится действительно сложной, и мое решение действительно сбивает с толку и производит много повторяющихся сегментов кода.
У меня есть мировой класс, в котором у меня есть несколько списков различных объектов, таких как:
List<Enemy> enemys;
List<Projectile> projectiles;
List<Collectable> collectables;
List<Asteroid> asteroids;
List<Effect> effects;
..
Каждый список обновляется мировым классом. но это еще не все .. У каждого врага есть список двигателей и список пусковых установок оружия, который обновляется противником. Теперь каждый движок добавляет некоторые эффекты огня в список «эффектов» мирового списка, а каждый пусковой механизм добавляет снаряды в список «снарядов» мирового списка. Все эти классы имеют разные параметры, поэтому мне нужно дополнительное обновление и дополнительная функция рендеринга для каждого класса.
По крайней мере, все они являются потомками GameObject, который предоставляет им базовые вещи, такие как векторы положения, скорости и ускорения, ограничивающие полигоны и функции, такие как applyForce и конечный автомат
Есть ли лучший или более распространенный способ сделать это? как один универсальный класс, который содержит все возможные параметры и методы для всех различных объектов. (я думаю, что это приведет к еще более запутанному коду)