Seite 1 von 2
animation verlangsamen
Verfasst: 05.04.2005 15:02
von spongebob
also ich habe da so 21 bilder die ich als animation gemacht habe ich dachte das wir d fließend laufen da das ja 21 bilder sind und starte ich das und was sehe ich da
der läuft die so schnell durch das man gerade mal kurz das erste und das letzte sieht und das noch nicht mal richtig :?keine ahnung:?
könnte man es irgendwie machen das der die langsamer abläuft.
das wär cool

ich habe es endlich geschafft

aber anders als ihr alle es mir gesagt habt tut mir leid....
Verfasst: 05.04.2005 15:12
von 125
Delay() in die Prozedur der Animation

Verfasst: 05.04.2005 15:16
von spongebob
habe ich schon versucht.... geht nicht

Verfasst: 05.04.2005 16:08
von Mike0484
Hallo,
Ich hoffe ich sage dir jetzt nichts falsches bin selber noch abfänger, aber
probier mal nach jedem Bild ein delay() und dann flipbuffers()
also:
Sprite()
Delay()
Flipbuffers()
sprite()
Delay()
Flipbuffer()
und so weiter
Verfasst: 05.04.2005 16:10
von Rubiko
wenn dann gleich delay mit millisekundenangabe
Verfasst: 05.04.2005 16:13
von Ynnus
Ich würde mit Timern arbeiten. Mit GetTickCount_() kannst du die aktuelle Zeit als Vergleichswert in einer Variablen speichern und nach einer bestimmten Zeit dann erst die Bilder weiterschalten.
Delay ist keine gute Methode, da dann dein Programm für diese Zeit einfriert und keine weiteren Berechnungen möglich sind.
Verfasst: 05.04.2005 16:31
von remi_meier
PS: GetTickCount_() = ElapsedMilliseconds()
Verfasst: 05.04.2005 16:34
von Ynnus
remi_meier hat geschrieben:PS: GetTickCount_() = ElapsedMilliseconds()
Wie auch immer, diese eine Zeile für Linuxversionen zu ändern wäre auch nicht das Problem.

Jedenfalls kein Delay verwenden.
Verfasst: 05.04.2005 16:36
von remi_meier
Auch für Demoversion! Und ausserdem kann dann jeder nachlesen, was die Funktion macht.
Verfasst: 05.04.2005 18:02
von Kaeru Gaman
@spongebob
also, wie auch immer du deine schleife synchronisierst...
ich vermute einfach mal, dass du die frames der animation hochzählst,
indem du so etwas ähnliches machst:
damit gehst du natürlich bei jeden Screen-Frame einen Animations-Frame weiter,
und die Anim hat die gleiche Framerate wie der Screen, das ist oft etwas schnell.
du kannst einen Animations-Frame mehrere Screen-Frames lang anzeigen,
indem du so etwas einbaust:
Code: Alles auswählen
Frame+1
If Frame > 5
Frame = 0
Anim +1
If Anim > 20
Anim = 0
Endif
Endif
damit änderst du den Anim-Frame nur alle 6 Screen-Frames.
ähnlich geht das auch mit nem timer-sync:
Code: Alles auswählen
If ElapsedMilliseconds() > AnimTimer
AnimTimer = ElapsedMilliseconds() + 50
Anim +1
If Anim > 20
Anim = 0
Endif
Endif
damit kommst du auf ca. 20 Anim-Frames pro Sekunde