Ja, Sie können dies auf relativ einfache Weise mithilfe von Transparenz tun.
Was Sie tun müssten, wäre, ein paar Schichten von Sprites anstelle von einer zu erstellen, die so vorbereitet und angeordnet sind, dass sie, wenn sie angezeigt werden, eine ganze Person bilden.
Ich habe ein Beispielbild angehängt, das zeigt, wie das aussehen könnte.
- Zeigt das Basisbild an, an dem ich gearbeitet habe
- Ich habe Teile entfernt, die sich nicht ändern werden
- Ich habe ein isoliertes Schwertbild gemacht
- So sieht das Schwert (diesmal Gold) aus, wenn es von 2 über das Bild gezogen wird. Glatt!
Jetzt können Sie Stahlschwerter einfach durch Goldschwerter ersetzen und müssen keine neuen Sprites mehr erstellen.
Wenn Sie sich an dieser Stelle eher wie ein Künstler fühlen
Dann ziehen Sie einfach ein paar (5-10) Schwertpositionen (vorberechnet). Dies hat den zusätzlichen Vorteil, dass Sie die Schwertform während der Bewegung ändern können und insgesamt bessere Ergebnisse erzielen können.
Die Anzahl der Animationsframes liegt natürlich bei Ihnen. Was bei dieser Methode wichtig ist, ist, dass Sie mit einer geeigneten Sprite-Delay-Engine (nicht so schwer zu schreiben) mehr Frames für Teile haben können, die sich schneller bewegen, und weniger für Teile, die sich langsamer bewegen.
Eine einfache Pseudocode-Implementierung könnte aussehen
// calculating each subpart
foreach(sprite_part in parts)
// first_not_less_than is usually called "lower_bound"
sprite_num = time_data[sprite_part_num].first_not_less_than(time)
sprite = spritesheet[sprite_part[sprite_num]];
Wenn Sie sich eher wie ein Programmierer fühlen
Beachten Sie, wie ich den ganzen Arm von der Basis entfernt habe. Sie können das Schwert leicht drehen, um die Bewegung zu simulieren. Dies erzeugt eine sehr flüssige Animation und erfordert nur Sprite, das in der Grundposition gezeichnet wurde, kann sich jedoch etwas weniger natürlich anfühlen.
Vergib mir, dass ich keinen .gif
Vergleich vorbereitet habe , aber ich bin kein Künstler :)
Dies ist zwar nur ein Beispiel, aber es steckt natürlich noch mehr dahinter. Bei einem Top-View-Spiel oder einem isometrischen Spiel kann ein anderer Ansatz sinnvoll sein. Diese Antwort soll nur die allgemeine Idee veranschaulichen.