Hi, mal ne generelle Frage zum Klassendesign bei einem Spiel.
Ich bastel ja gerade an einem 2D Spiel (wird wohl noch n Weilchen dauern
)
Und jetzt steh ich wie die Kuh vorm Tor wenn es ums Design der Klassen für die Spielobjekte, oder besser deren Handhabung geht.
Man nehme an es gibt 100 versch. Gegner, 200 Items...whatever.
Jetzt hab ich zwar für jeden möglichen grafischen und nichtgrafischen Typen eine Basisklasse, und vererbe immer fein alles was die nächst höhere Abstraktionseben des Objekts können soll weiter, aber ich möchte ja gern das jeder Gegner zb. ein unterschiedliches Verhalten hat, der eine evtl. mehrere Waffen..usw. usw.
Jetzt kann ich natürlich für jeden Gegner, Item usw. eine konkrete Klasse mit ausimplementiertem Verhalten und Eigenschaften erstellen, das scheint mir aber etwas arg "unschön".
Dann dacht ich daran jedem Objekt einfach so eine Art Parameter gesteuerte KI-Klasse, Waffen-Klasse, Wegfindungs-Klasse usw. anzuhängen, in der jeder Gegner dann immer nachschaut was er jetzt als nächstes machen würde.
Scheint eine sehr flexible Lösung zu sein...aber lange Rede, kurzer Sinn, wie macht mans denn "richtig" ?
Das mit den Gegnern war nur ein Beispiel, das Problem findet sich an vielen Stellen meiner Planung wieder, das ich sehr ähnliche Objekte mit verschiedensten Eigenschaften belegen möchte.
Am liebsten hät ich ja nur einen Typen als Basisklasse für alles (ähnlich object in C#), der dann automatisch wenn ich update() und draw() aufrufe immer das richtige in seinen abgeleiteten Klassen macht
Wie Wild treibt ihr es denn so mit der abstraktion von Spielobjekten ?
Eher viele verschiedene Klassen, oder eher sehr genersiche, wenige Klassen usw. ?
Tschja, in der Hoffnung irgend jemand versteht mein Geschreibsel, Freu mich auf Antworten.
Grüße Kozuore.