SekundenTimer in B2D
Übersicht

klausklapperBetreff: SekundenTimer in B2D |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja, hallo.
Also, wie mach ich denn am besten nen Timer in B2D. Also ne art Stopuhr. Habs bisher so geregelt: Code: [AUSKLAPPEN] If timer_change>0 Then timer_change=timer_change-1
If timer_change<1 timer_show=timer_show-1 timer_change=32 EndIf Aber anscheinend gibt es mehr als 32 Rechendurchläufe pro Sekunde. Und die Zahl verändert sich ja wahrscheinlich auch. Also. Ich warte auf Vorschläge ^__^ MfG, KlausK. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Erm ich fürchte so wird das auch nicht gehen:
1000/frequenz = anzahl updates und dann mit millisecs() schauen ob die zeitdifferenz seit dem letzten update entsprechend gross ist dein test ist in keinster form an zeit gebunden und kann somit nicht funktionieren. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
klausklapper |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
oOooookay, ich hab kein wort verstanden. Könntest du das ausführlicher beschreiben, bitte?
MfG, KlausK. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nun, wenn du willst das etwas 32 Mal pro Sekunde gemacht wird, musst du die Zeitdifferenz anschauen seit es das letzte Mal gemacht wurde.
Wenn diese Differenz grösser ist als 1000/32 Millisekunden (1000 = 1 Sekunde, 32 = Frequenz = Anzahl Male wie häufig es passieren soll), dann soll der Code ausgeführt werden. Dein Code nutzt leider in keinster Weise Zeitdifferenzen. Auf meinem System führt er es mehrfach pro Millisekunde aus nur so als Randbemerkung. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Normalerweise speichert man die Zeit in einer Variable und prüft, ob die Startzeit plus der gewünschten dauer schon vergangen ist:
Code: [AUSKLAPPEN] ms = millisecs() ; Die Startzeit
if ms + 1000 =< millisecs() then ... ; Wenn Startzeit plus dauer gleich oder kleiner der aktuellen Zeit sind, wird etwas ausgeführt Das kann man realisieren wie man will, aber ohne eine Funktion die dir unabhängig von deiner Prozessorgeschwindigkeit eine Zeit übergibt, wird dein Timer nicht auf allen Systemen gleich laufen. |
||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
klausklapper |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
und gäbe es denn eine solche funktion? | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
In Blitz selbst, nein
Ausser du willst das dein programm bis zum ablauf des timers stehen bleibt, dann kannst du CreateTimer und WaitTimer nutzen |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: und gäbe es denn eine solche funktion?
Wenn du eine Funktion meinst, die dir unabhängig von deiner Prozessorgeschwindigkeit eine Zeit übergibt, dann millisecs(). Diese ist nicht absolut, man kann aber damit zeitdifferenzen messen. |
||
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group