Seite 2 von 2

Verfasst: 21.01.2005 18:38
von RaVeN99
mit einem delay kannste hier nicht arbeiten - das hält das ganze programm auf. In einem game zum beispiel wäre das sehr unvorteilhaft.

Lass halt meinetwegen nur jeden 3en schleifendurchlauf ein neues bild anzeigen, iss zwar auch nicht optimal, aber zumindest besser als die delay methode. Möglichkeiten gibts doch zur genüge sowas zu manipulieren, musst nur ein wenig nachdenken.


RaVeN

Verfasst: 21.01.2005 22:18
von captain third
hehe ich habs ganz schlau gemacht... :mrgreen:

Code: Alles auswählen

Procedure TimerProcedure() 
Shared TimerProcedure_count 
       NextAnimFrame(big) 
       NextAnimFrame(test) 
TimerProcedure_count + 1 
If TimerProcedure_count = 7: TimerProcedure_count = 1: EndIf 
EndProcedure 
StartTimer(1,50,@TimerProcedure()) 
aus dem schnipsel hab ich ungefähr 3 stunden lang eine forschung angestellt,und herausgekommen ist das

Code: Alles auswählen

Procedure TimerProcedure() 
Shared TimerProcedure_count 
       NextAnimFrame(big) 
       NextAnimFrame(test) 
TimerProcedure_count + 1 
If TimerProcedure_count = 7: TimerProcedure_count = 1: EndIf 
EndProcedure 
StartTimer(1,200,@TimerProcedure()) 
ich habe in der letzten zeile "starttimer(1,200 usw) gemacht,aus 50 einfach zweihundert gemacht,und tata,besser als delay und so...finde ich...

Verfasst: 22.01.2005 22:25
von Kaeru Gaman
damit hast du das problem nur verschoben.

jetzt muss die hauptschleife synchronisiert sein. :wink:

Verfasst: 23.01.2005 02:25
von Danilo
@captain third:
AnimSprites in PureTools können eine "automatische Animation",
d.h. Du gibst an aller wieviel Millisekunden der Framewechsel
erfolgen soll, der Rest geht von allein.

Entweder Du gibst die ms als letzten (optionalen) Param von
CreateAnimSprite() an, oder Du stellst es mit SetAnimLoopDelay() ein.

Verfasst: 23.01.2005 16:02
von captain third
ich versteh nicht ganz,wiso verschoben...was kann den dadurch alles schiefgehn???