![]() |
Timer Interval > Zeit anzeige ?
Hallo,
In meinem Spiel möchte ich gerne eine genaue Zeitangabe habe wie lange das spiel schon läuft bzw. das Level und eine FPS anzeige möchte ich habe. Der Timer.Interval steht auf 10 um die CPU nicht zu überlassten bzw. auf 100% zu bringen. schalte ich sie auf 1 ist sie auf 100% 2 Würde auch noch gehen, aber 10 reicht voll aus.
Delphi-Quellcode:
So mache ich die Zeitberechnung... wobei ich weiß nicht wie ich diesen wert 150 anpasse weil ich kann ja nicht von 1000 ausgehen, das würde ja bedeuten das der Intervall auf 1 steht, aber das tut er nicht, er steht auf 10...
inc(fps);
if ms+1 >= 150 then begin ms:=0; UpdatetDisplayInfo(2); fps:=0; if Sekunden +1 >=60 then begin Sekunden:=0; inc(Minuten); end else inc(Sekunden); end else inc(ms); wie kann ich jetzt das Verhältnis richtig berechnen ? |
Re: Timer Interval > Zeit anzeige ?
Warum verwendest du nicht Funktionen wie Now oder GetTickCount? Du musst einfach den Anfangswert vom jetzigen Wert abziehen. Das ist deutlich genauer als die Timer-Variante.
|
Re: Timer Interval > Zeit anzeige ?
Moin Michael,
beim Timer.Interval steht die 10 für 10 Millisekunden, und das dürfte schon unterhalb der Auflösung des Timers liegen. |
Re: Timer Interval > Zeit anzeige ?
Zitat:
TTimer arbeitet mit mit der selben Teit wie GetTickCount und dieses Zeit läuft nur "aktuell" in 10ms-Schritten und mißt dacher nur bei größeren Intervallen genau. also einfach beim Spielstart die Zeit merken. Start1 := Now; (TDateTime) oder für "halbwegs genaue" (Kurzzeit)Messungen Start2 := GetTickCount; (LongWord) und die aktuelle Dauer/Zeit Jetzt1 := Now - Start1; (Jetzt1 in Millisekunden) Jetzt2 := GetTickCount - Start2; (Jetzt2 als TDateTime in Tagen+Zeit) |
Re: Timer Interval > Zeit anzeige ?
Vielen Dank himitsu so hat es geklappt, allerdings möchte ich die Zeit in Minuten und Sekunden anzeigen....
dazu finde ich leider nix..... |
Re: Timer Interval > Zeit anzeige ?
das brauchst du dir doch nur rausrechen?
TDateTime: 1,0 = 1 Tag 0,5 = 0,5 Tage = 12 Stunden 0,25 = 1/4 Tag = 6 Stunden 0,1 = 1/10 Tag = 2 Stunden 24 Minuten GetTickCount/Millisekunden: 1000 = 1 Sekunde 60000 = 1 Minute ... oder du nimmst Funktionen wie ![]() |
Re: Timer Interval > Zeit anzeige ?
danke, ich habe in der code lib diese Funktion gefunden:
Delphi-Quellcode:
und das klappt beim ersten test hatte ich einfach nur 100 geschrieben stat 1000 darum die Frage.... jetzt klappt es, aber wie kann ich jetzt meine FPS anzeige dort einbauen ?
// Seconds := (Ticks div 1000) mod 60;
// Minutes := (Ticks div 60000) mod 60; |
Re: Timer Interval > Zeit anzeige ?
Zitat:
Delphi-Quellcode:
FPS := angeeigte_Bilder div (Ticks div 1000);
//oder FPS := (angeeigte_Bilder * 1000) div Ticks; |
Re: Timer Interval > Zeit anzeige ?
Zitat:
muss er auch auf 0 gesetzt werden ? oder eher nicht?? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz