Performancefrage: Animation und die entsprechenden Bilder
-
Hi,
ich habe vor ein etwas größeres spiel mit der SDL zu schreiben...
die möglichekeiten, die ich mir so überlegt habe:
1)die Bilder für die Animation in einer großen Surface speichern. Wenn ich dann das Sprite bewege, zeichne ich immer nur das bestimmte rechteck...2)ich speichere die bilder der animation in vielen kleinen bildern und lade dann immer das bild, das ich gerade brauche und blitte es dann einfach auf den screen...
die 2te lösung ist ja nicht so gut wie die erste, oder? Da ich ja immer das bild zuerst laden muss um es auf den bildschirm zu bringen...
aber bei der 1ten lösung bin ich mir auch nicht so sicher... nehmen wir mal, dass ich ür die animation 15 bilder nehme. Dann bewegt sich das sprite ja noch in verschiedene richtungen, also brauche ich für die bestimmten winkel noch immer einzelne animationen. Sagen wir mal, dass ich 8 zeilen nehme, für die 8 winkel(0°, 45°, 90°, 135°, 180°, 225°, 270°, 315°)...
dann habe ich ja eine surface, die aus 8 zeilen und 15 spalten besteht... wenn dann jedes bild 64x64 groß ist, dann ist ja die gesamte surface:
höhe: 8 x 64 = 512
breite: 15 x 64 = 960groß... wenn ich dann z.B. noch mehr bilder für die animation verwenden möchte, dann wird sie ja noch größer...
Also Frage:
welche methode würdet ihr verwenden/ mir empfehlen?
-
Musst denn bei 1) die Bilder nicht geladen werden? Ansonsten wüsste ich jetzt keinen bedeutenden Unterschied, so das man für 2D keinesfalls eine der Methoden benutzen sollte.
Bye, TGGC (Dem beste BdT)
-
okay gut danke....
wollte nur nochmal wissen, was denn so die experten dazu sagen...
-
ich glaub er meint, dass man die texture nur am anfang des programms laden muss und nicht jedesmal, wenn ein neues bild angezeigt wird.
ich hab animationen immer so gemacht, dass ich alle bilder in eine texture reinnmach, die texture lade und dann einzelne ausschnitte mittels RECT *pSrcRect bei Sprite.Draw() zeichnen lasse.