Estoy desarrollando un juego espacial en 2D para dispositivos móviles, pero se vuelve realmente complejo y mi solución es realmente confusa y produce muchos segmentos de código repetidos.
Tengo una clase mundial en la que tengo listas de diferentes objetos como:
List<Enemy> enemys;
List<Projectile> projectiles;
List<Collectable> collectables;
List<Asteroid> asteroids;
List<Effect> effects;
..
Cada lista se actualiza por la clase mundial. pero eso no es todo. Cada enemigo tiene una lista de motores y una lista de buscadores de armas que el enemigo actualiza. Ahora cada motor agrega algunos efectos de fuego a los 'efectos' de la lista mundial, y cada lanzador de armas agrega proyectiles a los 'proyectiles' de la lista mundial. Todas estas clases tienen parámetros diferentes, por lo que necesito una actualización adicional Y una función de renderización adicional para cada clase.
Al menos, todos son elementos secundarios de 'GameObject' que les proporciona elementos básicos como vectores de posición, velocidad y aceleración, polígonos delimitadores y funciones como applyForce y una máquina de estados finitos.
¿Hay una forma mejor o más común de hacer esto? como una clase catch-all que contiene todos los parámetros y métodos posibles para todos los objetos diferentes. (Creo que esto produciría un código aún más confuso)