wie kann man in eine repeat schleife eine animation einbauen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

supermann

Betreff: wie kann man in eine repeat schleife eine animation einbauen

BeitragSo, Sep 11, 2005 18:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute Very Happy,
ich konnte als Titel meine Frage nicht fertig formolieren.Tut mir leid Embarassed,
aber hier kommt sie (Ich glaube diese Frage wurde schon sehr oft gefragt):
Wie kann man in eine Repeat schleife eine animation einbauen das dabei noch andere "Sachen" in normaler schnelle mitlaufen können????Weis das jemand?

darth

Betreff: ..

BeitragSo, Sep 11, 2005 19:30
Antworten mit Zitat
Benutzer-Profile anzeigen
?!? weiss jetzt nich ob du sowas meinst...

repeat

if not animating(dingsda) then
animate dingsda,3,1,? ;<= sequenz
endif

;der restl. code...

forever

(bei md2 objekten gehts analog...)

[edit]
... sag das doch ... kann man ja nich wissen ...
Diese Signatur ist leer.
  • Zuletzt bearbeitet von darth am Di, Sep 13, 2005 16:42, insgesamt einmal bearbeitet

supermann

BeitragSo, Sep 11, 2005 20:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich meine 2D. hat da wer ne Ahnung?

MBC

BeitragSo, Sep 11, 2005 21:33
Antworten mit Zitat
Benutzer-Profile anzeigen
du meinst wahrscheinlich ohne waittimer?
also, ich würd das mit millisecs() machen, z.B. so:

BlitzBasic: [AUSKLAPPEN]

frame_timer=MilliSecs()

Repeat
If MilliSecs()-frame_timer>250 Then ;Frame wird 250millisecs angezeigt
frame=frame+1 ;Frame-Nr. um eins erhöhen
frame_timer=MilliSecs() ;frame_timer wieder auf Millisecs() setzen
EndIf

;(...)
;animation zeichnen mit drawimage bild,x,y,frame

Until KeyHit(1)


Hab den Code jetzt nich getestet (naja, so würd man auch nich viel sehen Wink), aber so in der Art sollts gehen.

MfG
MBC
Computer sind auch nur Menschen! Wink

PSY

BeitragMo, Sep 12, 2005 1:40
Antworten mit Zitat
Benutzer-Profile anzeigen
MBC schrieb:
BlitzBasic: [AUSKLAPPEN]
frame_timer=MilliSecs() 

Repeat
If MilliSecs()-frame_timer>250 Then ;Frame wird 250millisecs angezeigt
frame=frame+1 ;Frame-Nr. um eins erhöhen
frame_timer=MilliSecs() ;frame_timer wieder auf Millisecs() setzen
EndIf

;(...)
;animation zeichnen mit drawimage bild,x,y,frame

Until KeyHit(1)


Somit wird die animation aber jedesmal in der Hauptschleife mitgezeichnet, unabhängig davon ob 250 Millisecs rum sind oder nicht.
frame=frame+1 ist dazu auch nicht nötig. Sowas braucht man z.B. zur FPS-Berechnung.


Ich nehm an so willst Du's haben:

BlitzBasic: [AUSKLAPPEN]
frame_timer=MilliSecs() 

Repeat
If MilliSecs()-frame_timer>250 ;250 Millisekunden vergangen?
frame_timer=MilliSecs() ;frame_timer resetten
(zeichne irgendwelche animationen und anderen kram)
EndIf

(...)
(hier kommt dann der zeitunabhängige Code hin)
(...)
Until KeyHit(1)


L8er,
PSY

supermann

BeitragMo, Sep 12, 2005 9:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für eure tipps.
 

Finn

BeitragMi, Sep 14, 2005 15:53
Antworten mit Zitat
Benutzer-Profile anzeigen
ich machs immer so, dass ich die variable mit der der ich das aktuelle frame festlege nicht +1 hochzähle sondern als float (frame#=1.0) festlege und dann immer +0.0625 hochzähle. ergibt ganz ohne millisecs oder waittimer normal-speed für alles.

PSY

BeitragDo, Sep 15, 2005 2:25
Antworten mit Zitat
Benutzer-Profile anzeigen
ohne zeitabhängige steuerung bekommst du keine äquivalenten schleifengeschwindigkeiten auf verschieden schnellen systemen hin

l8er
psy

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group