Ich bin gerade dabei, ein neues 2D-Spiel aus einem Code zu erstellen, den ich vor einiger Zeit geschrieben habe.
Die Objekthierarchie für Entitäten lautet wie folgt:
Scene
(zBMainMenu
): Enthält mehrere Entitäten und Delegierteupdate()
/draw()
an jedeEntity
: Basisklasse für alle Dinge in einer Szene (zBMenuItem
oderAlien
)Sprite
: Basisklasse für alle Entitäten, die nur eine Textur zeichnen, dh keine eigene Zeichenlogik haben
Ist es sinnvoll, Entitäten und Sprites so aufzuteilen? Ich denke in einem 2D-Spiel sind die Begriffe Entität und Sprite etwas synonym, oder?
Ich glaube jedoch, dass ich eine Basisklasse für Entitäten benötige, die nur eine Textur zeichnen, anstatt sich selbst zu zeichnen, um Doppelarbeit zu vermeiden. Die meisten Entitäten sind so.
Ein seltsamer Fall ist meine Text
Klasse: Sie leitet sich von ab Sprite
, die entweder den Pfad eines Bildes oder eine bereits geladene Textur in ihrem Konstruktor akzeptiert. Text
Lädt eine Textur in seinen Konstruktor und übergibt diese an Sprite
.
Können Sie ein Design skizzieren, das sinnvoller ist? Oder weisen Sie mich auf eine gute objektorientierte Referenzcodebasis für ein 2D-Spiel hin? Ich konnte nur 3D-Engine-Codebasen mit anständiger Codequalität finden, z. B. Doom 3 und HPL1Engine.