Timing Probleme bei Blitz und Donner :(

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

BlackError

Betreff: Timing Probleme bei Blitz und Donner :(

BeitragMo, Jan 28, 2008 22:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen,

Ich bin gerade dabei mir eine kleine düstere Umgebeung zu basteln. Nun bin ich gerade bei den Wettereffekten.
Darunter auch Blitz und Donner, die mir im Moment schwierigkeiten bereiten.

Ich habe 2 Verschiedene Donnersound, die zu unterschiedlichen zeiten abgespielt werden.
Darum natürlich auch 2 Blitze (aufleuchten) -> auch zu unterschiedliche Zeiten (Kurz vor dem Donner)

Zu beginn habe ich erstmal diese Variablen erstellt:

Code: [AUSKLAPPEN]

Last_Thunder%   = MilliSecs()      ;Donner 1
Last_Thunder2%  = MilliSecs()     ;Donner 2

Last_Flash% = MilliSecs()            ;Anfang Blitz 1 + 2
Flash_Time% = MilliSecs()          ;Ende Blitz 1 + 2

Last_Second_Flash% = MilliSecs()       ;Anfang Nachblitz 1 + 2
Second_Flash_Time% = MilliSecs()     ;Ende Nachblitz 1 + 2


in der Hauptschleife habe ich nun diesen Code Hier:

Code: [AUSKLAPPEN]

;Blitz + Donner
 If MilliSecs() - Last_Flash% > 9000         ;Anfang Blitz 1
   AmbientLight 255,255,255
   CameraClsColor Cam, 255,255,255
   Last_Flash% = MilliSecs()
 End If

 If MilliSecs() - Flash_Time% > 9200         ;Ende Blitz 1
   AmbientLight 80,80,80
   CameraClsColor Cam, 0,0,0
   Flash_Time% = MilliSecs()
 End If


 If MilliSecs() - Last_Second_Flash% > 9300      ;Anfang Nachblitz 1
   AmbientLight 255,255,255      
   CameraClsColor Cam, 255,255,255
   Last_Second_Flash% = MilliSecs()
 End If

 If MilliSecs() - Second_Flash_Time% > 9500      ;Ende Nachblitz 1
   AmbientLight 80,80,80
   CameraClsColor Cam, 0,0,0
   Second_Flash_Time% = MilliSecs()
 End If

;-----------------------------------------

 If MilliSecs() - Last_Flash% > 19000         ;Anfang Blitz 2
   AmbientLight 255,255,255
   CameraClsColor Cam, 255,255,255
   Last_Flash% = MilliSecs()
 End If

 If MilliSecs() - Flash_Time% > 19200         ;Ende Blitz 2
   AmbientLight 80,80,80
   CameraClsColor Cam, 0,0,0
   Flash_Time% = MilliSecs()
 End If

 If MilliSecs() - Last_Second_Flash% > 19300   ;Anfang Nachblitz 2
   AmbientLight 255,255,255
   CameraClsColor Cam, 255,255,255
   Last_Second_Flash% = MilliSecs()
 End If

 If MilliSecs() - Second_Flash_Time% > 19500   ;Ende Nachblitz 2
   AmbientLight 80,80,80
   CameraClsColor Cam, 0,0,0
   Second_Flash_Time% = MilliSecs()
 End If

;-----------------------------------------

 If MilliSecs() - Last_Thunder% > 20000
   PlaySound Donner
   Last_Thunder% = MilliSecs()
 End If

 If MilliSecs() - Last_Thunder2% > 10000
   PlaySound Donner2
   Last_Thunder2% = MilliSecs()
 End If


Jedoch habe ich nun bemerkt, dass sich die Dauer der Blitze und die Abstände der Donner zueinander nach jedem anwenden immer länger wird.

Sprich: 1. Blitz dauert 200 millisekunen
2. Blitz dauert z.B. 400 millisekunen

Somit gerät nach einigen Blitzen und Donnern der Ganze Zeitablauf aus dem Ruder (Was nachtürlich nicht schön aussieht und sich nicht schön anhört).

Meine einzige Vermutung wäre nur, dass es was mit dem waittimer zu tun hat, mit denen ich die FPS eingrenze und so sich jeder schleifendurchlauf bzw. jede Zeitspanne vergrößert.

Hoffe auf Antwort

Gruss BlackError

PSY

Betreff: Re: Timing Probleme bei Blitz und Donner :(

BeitragDi, Jan 29, 2008 8:04
Antworten mit Zitat
Benutzer-Profile anzeigen
BlackError hat Folgendes geschrieben:

Meine einzige Vermutung wäre nur, dass es was mit dem waittimer zu tun hat, mit denen ich die FPS eingrenze und so sich jeder schleifendurchlauf bzw. jede Zeitspanne vergrößert.


kaum, weil deine blitze ja zeitabhängig sind und nicht fps-abhängig Wink

is doch klar...

dein erster blitz kommt nach 9 secs, der nachblitz nach 9,2
der zweite blitz kommt nach 18 secs. und wann ist die zeitspanne zwischen aktueller zeit und letztem nachblitz > 9,2?...wenn die aktuelle (verstrichene) zeit 18,4 ist (18,4 - 9,2 = 9,2)....

das bedeutet auf den ersten blitz hast du 9 secs gewartet, auf den ersten nachblitz 9,2 secs
auf den zweiten blitz hast du 18 secs gewartet, auf den zweiten nachblitz 18,4 secs (<--- hier sind schon 0.2 secs zuviel).

usw..
usw..

du musst das anders lösen Cool

L8er,
PSY
 

BlackError

BeitragFr, Apr 04, 2008 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm, ok, das problem hab ich erkannt.
Jedoch weiss ich nicht, wie ich dieses Problem am besten lösen soll?

Hat jemand eine Idee?

Hoffe auf Antwort.

Gruss BlackError

Xeres

Moderator

BeitragFr, Apr 04, 2008 19:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Sobald der Hauptblitz ausgelöst wird, soll der Nachblitz Millisecs() + EinPaarMillisekunden danach erfolgen. Ist dass Hinweiß genug?
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group