Wie verwirkliche ich einfache 2D Animation?



  • Nexus schrieb:

    Wegen der Performance: Was Schnelligkeit anbelangt, ist SDL extrem schlecht. Gut möglich, dass es daran liegt.

    Seit wann?
    Und selbst wenn die Performance von SDL mal nicht optimal ist: Daran liegt es wohl kaum, es sei denn, myraezel geht irgendwie falsch mit SDL um.

    myraezel: Kannst Du Dein Programm nicht einfach mal durch einen Profiler durchjagen? Der sagt Dir dann, wo das Programm seine Zeit verbringt.



  • ich kenne den debugger , aber von einem profiler habe ich noch nix gehört. Liegt wohl an meiner Unwissenheit. Ich benutzte den Borland C++ Builder 6.0. Ist da ein Profiler implementiert?. Wenn nicht wo bekommt man sowas.



  • ich kenne den debugger , aber von einem profiler habe ich noch nix gehört. Liegt wohl an meiner Unwissenheit. Ich benutzte den Borland C++ Builder 6.0. Ist da ein Profiler implementiert?. Wenn nicht wo bekommt man sowas.



  • Ein Profiler ist ein Tool, das es ermöglicht, Programme auf Performance zu analysieren. Man kann z.B. schauen, wie lange wo Zeit verbraucht wird, um zu optimieren.

    Ich kenne den C++ Builder nicht, aber du könntest zum Beispiel AMD CodeAnalyst zum Profilen verwenden, der ist kostenlos.



  • sdl ist langsam, aber so langsam sollte es dann doch nicht sein. kannst du mal den relevanten code (bitte keinen 500 zeiler] auf www.rafb.net hochladen? in mir kriecht die vermutung hoch, dass du die bilder bei jedem framedurchgang neu lädst.



  • danke, das werde ich sofort machen.

    dies ist der link unter dem ich den code hochgeladen habe.
    schon eher lächerlich...., hier ist er URL: http://rafb.net/p/o5MpaY97.html



  • picbuffer = SDL_LoadBMP("C:/map2/boden12.jpg");
    

    Oehm also wenn das bei jedem 2. Durchgang durchgefuehrt wird duerfte das zumindest nicht zum schnelleren Ablauf beitragen...



  • Zum Profiler: Der gcc hat einen integriert, steig mal auf Codeblocks um zur Not, der hat sogar einen analyzer dabei um den output deines Programms dann zu analyisieren. 🙂

    Alternative für SDL wäre unter Windows HGE. Ist eine verdammt gute und einfach zu benutzende 2D-Engine. Leider nur für Windows weil sie DirectX benutzt.
    Edit: Und wie der Vorposter schon andeutete: Lade alle Bilder auf einmal ins Programm und wechsle dann nur das Bild. Das geht schneller....
    lg



  • Scorcher24 schrieb:

    Alternative für SDL wäre unter Windows HGE.

    Oder SFML, diese Grafikbibliothek finde ich sehr benutzerfreundlich 😉



  • C/C++ Code:
    picbuffer = SDL_LoadBMP("C:/map2/boden12.jpg");

    Oehm also wenn das bei jedem 2. Durchgang durchgefuehrt wird duerfte das zumindest nicht zum schnelleren Ablauf beitragen...

    ah, ist das so? dann änedr ich das mal ab. ich sag gleich mal bescheid obs was gebracht hat.



  • myraezel schrieb:

    C/C++ Code:
    picbuffer = SDL_LoadBMP("C:/map2/boden12.jpg");

    Oehm also wenn das bei jedem 2. Durchgang durchgefuehrt wird duerfte das zumindest nicht zum schnelleren Ablauf beitragen...

    ah, ist das so? dann änedr ich das mal ab. ich sag gleich mal bescheid obs was gebracht hat.

    Joa, wenn das Bild erstmal von der Platte in den Speicher geladen werden muss, nimmt das schon mehr zeit weg als wenn das Bild schon geladen ist 😉
    Solange es aber nur ein Bild ist und dieses nicht recht klein ist, dürfte sich das nicht so extrem auswirken, aber trotzdem sollte es nicht sein 😉



  • vorsichtig ausgedrückt, scheint es genau daran gelegen zu haben, ich habe das laden des bildes ausgelagert, in eine eigene variable, die nicht neu beladen werden muss, und es scheint zu funktionieren.

    danke erstmal, ich werde mich weiterhin melden wenn ich fragen habe. soll ich dazu dann hier weiterschreiben, oder einen neuen thread eröffnen, also wenn die neue frage nix mehr hiermit zu tun hat?



  • na wenn's ein anderes Thema geht, also nix mehr mit dem Titel hier zu tun hat, ist ein neuer Thread besser 😉


Anmelden zum Antworten