Estou desenvolvendo um jogo espacial 2D para dispositivos móveis, mas ele se torna muito complexo e minha solução é bastante confusa e produz muitos segmentos de código repetidos.
Eu tenho uma classe mundial em que eu tenho listas multible de diferentes objetos como:
List<Enemy> enemys;
List<Projectile> projectiles;
List<Collectable> collectables;
List<Asteroid> asteroids;
List<Effect> effects;
..
Cada lista é atualizada pela classe mundial. mas isso não é tudo. Cada inimigo tem uma lista de mecanismos e lista de lançadores de armas que são atualizados pelo inimigo. Agora, cada mecanismo adiciona alguns efeitos de fogo à lista mundial de 'efeitos', e cada lançador de armas adiciona projéteis à lista mundial de 'projéteis'. Todas essas classes têm parâmetros diferentes, então eu preciso de uma atualização extra E da função de renderização extra para cada classe.
Pelo menos eles são todos filhos de 'GameObject', que fornece itens básicos como vetores de posição, velocidade e aceleração, polígonos delimitadores e funções como applyForce e uma máquina de estados finitos
Existe uma maneira melhor ou mais comum de fazer isso? como uma classe abrangente que contém todos os parâmetros e métodos possíveis para todos os objetos diferentes. (acho que isso produziria um código ainda mais confuso)