Tworzę kosmiczną grę 2D na urządzenia mobilne, ale robi się naprawdę skomplikowana, a moje rozwiązanie jest naprawdę mylące i generuje wiele powtarzających się segmentów kodu.
Mam światowej klasy, w której mam multible listy różnych obiektów, takich jak:
List<Enemy> enemys;
List<Projectile> projectiles;
List<Collectable> collectables;
List<Asteroid> asteroids;
List<Effect> effects;
..
Każda lista jest aktualizowana przez światowej klasy. ale to nie wszystko. Każdy wróg ma listę silników i listę skrytobójców, która jest aktualizowana przez wroga. Teraz każdy silnik dodaje niektóre efekty ognia do „efektów” z listy światów, a każdy luncher broni dodaje pociski do „pocisków” z listy świata. Wszystkie te klasy mają inny parametr, więc potrzebuję dodatkowej aktualizacji ORAZ dodatkowej funkcji renderowania dla każdej klasy.
Przynajmniej wszystkie są potomkami „GameObject”, który zapewnia im podstawowe rzeczy, takie jak wektory położenia, prędkości i przyspieszenia, granice wielokątów oraz funkcje takie jak applyForce i skończona maszyna stanów
Czy istnieje lepszy lub bardziej powszechny sposób na zrobienie tego? jak jedna klasa catch-all, która zawiera wszystkie możliwe parametry i metody dla wszystkich różnych obiektów. (myślę, że spowodowałoby to jeszcze bardziej kłopotliwy kod)