Animation
-
Hi,
kennt sich hier irgendjemand gut mit SDL aus?
ich habe nämmlich folgendes Problem:
Ich möchte ein animiertes gif-Bild (Animation1.gif) mit SDL_LoadBMP()
in mein Programm einfügen und dann auf dem Bildschirm anzeigen lassen.
Ich habe es ganz normal wie ein bmp-Bild eingefügt, also so://///////////////////////////////////////////////////////////
image = SDL_LoadBMP("Animation1.gif");.........................................................
dst.x = 15;
dst.y = 15;
dst.w = image->w;
dst.h = image->h;.........................................................
SDL_BlitSurface(image, NULL, back, &dst);
//////////////////////////////////////////////////////////////////////
Nur es funktioniert nicht(das Programm startet nicht).
Aber bei einem gif-Bild, das sich nicht bewegt
klappt es. Wüsstet ihr eine Lösung für mein Problem?
Muss ich vielleicht eine ganz andere Funktion verwenden,
wenn ich eine Animation benutze?
Schon einmal vielen Dank im Voraus!Gruß Crabbe
-
Ich glaube nicht, dass SDL animierte Gif's unterstützt.
Da musst du schon auf Sprites ausweichen.
-
Glaubst du das oder weißt du das?
Gruß Crabbe
-
SDL kann wirklich von sich aus keine animierten GIFs anzeigen (es ist sehr seltsam das es mit normalen GIFs überhaupt funktioniert, ich probier das bei gelegenheit mal aus). Es gibt eine lib, die andere formate als bmp auslesen kann, aber das geht glaube ich nicht mit anigifs.
geloescht
-
Ich glaube es zu wissen.
De facto nimmt niemand animierte Gif's. Die sind viel zu unfexibel.
Jeder hier wird dir sagen, dass du Sprites nehmen sollst.
-
Na ja, wirklich schade.
Aber trotzdem Danke
-
Ich weiss gar nich was ihr euch immer so mit Animationen quält
Bastelt doch einfach für jede Animation eine Definitions-Datei und liest diese dann ein.
Da muss nur drinstehen:
Bildreihenfolge
Zeit-Intervall zwischen Bildwechsel
Endlos ja/neinDer Rest ist minimaler Programmier-Aufwand. Zeit seit dem letzten Bildwechsel errechnen. Wenn >= Intervall, nächstes Bild usw.
-
Cpp_Junky schrieb:
Ich weiss gar nich was ihr euch immer so mit Animationen quält
Eben, ist doch dasselbe wie zwei Bilder anzeigen. Nur ist nicht die Position unterschiedlich, sondern die Zeit. (Was nach Einstein ja ehh schnupe ist.)