Ich möchte eine Möglichkeit haben, viele verschiedene Einheiten zu erstellen, ohne Dinge wie MoveTo- und Attack-Aktionen mehr als einmal programmieren zu müssen
So wie ich es sehe, gibt es zwei Möglichkeiten, wie ich das tun kann.
- Eine einzelne generische Unit-Klasse mit Flags, die angeben, was sie kann / nicht kann (dann Instanzen in einem statischen Array erstellen und bei Bedarf abrufen).
- Abstrakte Einheitenklasse mit abstrakten Methoden für einheitenspezifische Aktionen wie (Attack, Harvest, Patrol), die dann alle in den Unterklassen implementiert werden müssen , auch wenn die Einheit eigentlich nichts ernten kann.
Der erste Weg, dies zu tun, scheint der einfachste zu sein, aber ich würde viel Code haben, der für die Mehrheit der Einheiten nicht verwendet wird.
der zweite weg könnte auch funktionieren. Aber wenn ich mich für zwei verschiedene Einheiten entscheide, die Ressourcen ernten können, werde ich genau den gleichen Code in zwei verschiedenen Klassen haben, was nicht der richtige Weg zu sein scheint.
Ist das überhaupt der richtige Ansatz für dieses Problem?
In einem Spiel wie AoE hat jede Einheit, was ich annehme, eine Art Liste von Aktionen / Befehlen. Ich würde wirklich gerne wissen, wie man etwas Ähnliches erreicht, bei dem ich jede Aktion / Befehl nur einmal codieren kann und Geben Sie es dann allen Einheiten, die diese Aktion benötigen.
Wenn ich unklar bin (sehr plausibel) oder Sie weitere Informationen benötigen, was genau ich suche, fragen Sie mich einfach in einem Kommentar.