?
Guten Abend,
ich bin momentan auf der Suche nach einem möglichst flexiblen, abstrakten Konzept für Animationen in 2D.
D.h. die naive Herangehensweise, dass eine Animation einfach mehrere Bilder hält, die nacheinander abgespult werden, ist mir zu unflexibel. Räumliche Verschiebung etc. lässt sich so nur ungenügend konsistent eingliedern.
Deswegen folgender Ansatz: Eine Animation setzt sich zusammen aus mehreren einzelnen Manipulationen, die an einem Objekt durchgeführt werden.
Soweit, so simpel. Konkret implementiert hätte ich das, indem ich einen Grundtypen für eine solche Manipulation festlege, von mir aus ein Funktoren-Interface, von dem die konkreten Veränderungen (Positionsänderung, Bildmanipulation etc.) dann erben.
So könnte ich dann eine Reihe von Funktionen auf mein Objekt anwenden, und am Ende hätte ich dann eine Animation, die ich immer wieder laufen lassen kann.
Was mich ein wenig kratzt an der Sache ist, dass ich nicht verhindern kann, dass der User Humbug in seiner konkreten Manipulation treibt (Programm schließt, Stack schrottet, Kuchen bäckt, Atomkrieg auslöst etc.), und nicht nur auf die elementaren Operationen auf dem Objekt zurückgreift. Aber das sollte mich eigentlich herzlich wenig interessieren, ich stelle ja nur das Konzept bereit.
Umgehen ließe sich das ganze mit einer Art Datenformat lösen, in dem einfach die Manipulationen sowie deren Parameter kodiert (Offset, Rotationswinkel) und dann von einer art Animator-Klasse interpretiert werden.
Wenn ich das, insbesondere der letzte Abschnitt, so schreibe, hab ich irgendwie immer das mulmige Gefühl, dass ich da mit Kanonen auf Spatzen, oder mir einfach von hinten durch die Brust schieße.
Übersehe ich irgendwelche Probleme bei diesem Design, oder kennt irgendjemand eine alternative, weniger kompliziert gedachte Methode, die mir es erlaubt, derartig frei "Veränderungen" an Objekten zu generalisieren?