Ich habe vor kurzem angefangen, eine Game Engine unter Verwendung des Entity System-Paradigmas zu entwerfen, dh Entities als Aggregation von Komponenten und Systemen, die das eigentliche Spiel implementieren. Während ich in verschiedenen Aspekten Schwierigkeiten hatte, geht es mir am meisten um die Abstraktion / Modularität der verschiedenen Komponenten / Systeme. Nehmen wir an, mein Player
hat mehrere Animationszustände, z. Walking
, Sleeping
, Jumping
, Und eine Art von Opponent
Einheit verfügt über mehr (nicht notwendigerweise die gleichen) Staaten wie auch zB. Walking
, Hiding
Usw.
Wie soll ich die Engine so gestalten, dass sie die verschiedenen (Animations-) Zustände jedes Entitätstyps behandelt? Sollte es für jeden Entitätstyp unterschiedliche Animationssysteme geben? Sollte ich Flags verwenden, die dem Animationssystem signalisieren, um die richtige Entität zu rendern? Kann ich auch vermeiden, "hartcodierte" Aufzählungen für die verschiedenen Posen zu verwenden? Ich kann sehen, dass ein Skriptsystem wahrscheinlich helfen könnte, aber ich bin mir fast sicher, dass es eine einfachere Lösung gibt.
if
im Animationssystem zu verwenden. Ich war zuvor skeptisch gegenüber der Verwendung von Wörterbüchern für Zeichenfolgen (in C ++), was das Gedächtnis betrifft. Nachdem ich heute über Hashtabellen gelesen habe, finde ich Ihre Antwort einfach genug. In Bezug auf den 'Mixer'-Teil: Bedeutet "Hinzufügen von 50% zu Fuß", dass in 50% der Fälle einige Frames durch die' Walk'-Frames ersetzt werden?