Hi, bin Javascriptler und tue mich mit den nicht vorhandenen Timern in PB schwer. SetTimer der Api funktioniert nicht, da ich bis jetzt nur eine Demoversion habe.
Möchte eine Zeitanzeige alle Sekunde aktualisieren. Habe mir eine Funktion geschrieben, die das StringGadget aktualisiert.
Wenn ich die Funktion mit delay(1000) benutze steht der Rest und wenn ich Int(elapsedmilliseconds/1000) in eine Variable umlade und dann schaue, ob sie kleiner ist als Int(elapsedmilliseconds/1000) flackert die Anzeige.
Repeat
jetzt.q = Int(ElapsedMilliseconds() / 1000)
If jetzt < Int(ElapsedMilliseconds() / 1000)
zeit()
EndIf
Wie gehts besser? Danke...
Außerdem möchte ich 2 Bilder regelmäßig tauschen, damit ein Blinklichteffekt entsteht - wäre wohl das gleiche Problem...
Timerproblem
-
- Beiträge: 7
- Registriert: 13.05.2007 11:33
- Wohnort: beim größten Kuppeldom in D
Timerproblem
Carpe Diem
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
So sollte es funktionieren:
Code: Alles auswählen
; Initialisierung
Repeat ; Deine Hauptschleife halt
If ElapsedMilliseconds() - alteZeit >= 1000
; Aktualisieren der Anzeige
alteZeit = ElapsedMilliseconds()
EndIf
; ... Sonstiger Kram in deiner Hauptschleife ...
Until k.A.
End
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
>> Repeat ; Deine Hauptschleife halt
Die ist doch auch sehr wichtig
Damit das Eventloop auch regelmässig durchbrochen wird
Die ist doch auch sehr wichtig

Code: Alles auswählen
Event = WaitWindowEvent(500)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 7
- Registriert: 13.05.2007 11:33
- Wohnort: beim größten Kuppeldom in D
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
noch ein zusaätzlicher hinweis
(dieser fehler wird immer wieder gemacht, obwohl ich mir seit nem jahr den mund fusselig rede)
Didi hat folgenden Code gepostet:
dieser enthält eine wesentliche schwäche:
zeitabweichungen addieren sich auf, weil als neue Zeitbasis die aktuelle zeit genommen wird,
und nicht ein genormter abstand zur alten.
so ist es besser:
(dieser fehler wird immer wieder gemacht, obwohl ich mir seit nem jahr den mund fusselig rede)
Didi hat folgenden Code gepostet:
Code: Alles auswählen
If ElapsedMilliseconds() - alteZeit >= 1000
; Aktualisieren der Anzeige
alteZeit = ElapsedMilliseconds()
EndIf
zeitabweichungen addieren sich auf, weil als neue Zeitbasis die aktuelle zeit genommen wird,
und nicht ein genormter abstand zur alten.
so ist es besser:
Code: Alles auswählen
If ElapsedMilliseconds() - alteZeit >= 1000
; Aktualisieren der Anzeige
alteZeit + 1000
EndIf
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.