Ich entwickle ein 2D-Weltraumspiel für mobile Geräte, aber es wird sehr komplex und meine Lösung ist sehr verwirrend und erzeugt viele wiederholte Codesegmente.
Ich habe eine Weltklasse, in der ich mehrere Listen verschiedener Objekte habe, wie:
List<Enemy> enemys;
List<Projectile> projectiles;
List<Collectable> collectables;
List<Asteroid> asteroids;
List<Effect> effects;
..
Jede Liste wird von der Weltklasse aktualisiert. Aber das ist noch nicht alles. Jeder Feind hat eine Liste von Motoren und eine Liste von Waffenluntern, die vom Feind aktualisiert werden. Jetzt fügt jeder Motor der Weltliste 'Effekte' einige Feuereffekte hinzu, und jeder Waffenwerfer fügt der Weltliste 'Projektile' Projektile hinzu. Alle diese Klassen haben unterschiedliche Parameter, daher benötige ich für jede Klasse ein zusätzliches Update UND eine zusätzliche Renderfunktion.
Zumindest sind sie alle Kinder von 'GameObject', das ihnen grundlegende Dinge wie Positions-, Geschwindigkeits- und Beschleunigungsvektoren, begrenzende Polygone und Funktionen wie applyForce und eine endliche Zustandsmaschine bietet
Gibt es einen besseren oder allgemeineren Weg, dies zu tun? wie eine Catch-All-Klasse, die alle möglichen Parameter und Methoden für alle verschiedenen Objekte enthält. (Ich denke, dies würde noch verwirrenderen Code erzeugen)