AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Timer Interval > Zeit anzeige ?
Thema durchsuchen
Ansicht
Themen-Optionen

Timer Interval > Zeit anzeige ?

Ein Thema von mimi · begonnen am 8. Dez 2007 · letzter Beitrag vom 8. Dez 2007
Antwort Antwort
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#1

Timer Interval > Zeit anzeige ?

  Alt 8. Dez 2007, 18:08
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:
  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);
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...
wie kann ich jetzt das Verhältnis richtig berechnen ?
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Timer Interval > Zeit anzeige ?

  Alt 8. Dez 2007, 18:17
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.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Timer Interval > Zeit anzeige ?

  Alt 8. Dez 2007, 18:23
Moin Michael,

beim Timer.Interval steht die 10 für 10 Millisekunden, und das dürfte schon unterhalb der Auflösung des Timers liegen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

Re: Timer Interval > Zeit anzeige ?

  Alt 8. Dez 2007, 18:31
Zitat von mimi:
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.
Abgesehn davon das bei 1 eh fals gemessen würde.
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)
$2B or not $2B
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Timer Interval > Zeit anzeige ?

  Alt 8. Dez 2007, 19:03
Vielen Dank himitsu so hat es geklappt, allerdings möchte ich die Zeit in Minuten und Sekunden anzeigen....

dazu finde ich leider nix.....
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

Re: Timer Interval > Zeit anzeige ?

  Alt 8. Dez 2007, 19:15
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 Delphi-Referenz durchsuchenFormatDateTime
$2B or not $2B
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Timer Interval > Zeit anzeige ?

  Alt 8. Dez 2007, 19:17
danke, ich habe in der code lib diese Funktion gefunden:
Delphi-Quellcode:
// Seconds := (Ticks div 1000) mod 60;
// Minutes := (Ticks div 60000) mod 60;
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 ?
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

Re: Timer Interval > Zeit anzeige ?

  Alt 8. Dez 2007, 19:45
Zitat von mimi:
danke, ich habe in der code lib diese Funktion gefunden:
Delphi-Quellcode:
// Seconds := (Ticks div 1000) mod 60;
// Minutes := (Ticks div 60000) mod 60;
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 ?
FPS = Bilder / Zeit_in_Sekunden

Delphi-Quellcode:
FPS := angeeigte_Bilder div (Ticks div 1000);
//oder
FPS := (angeeigte_Bilder * 1000) div Ticks;
$2B or not $2B
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Timer Interval > Zeit anzeige ?

  Alt 8. Dez 2007, 22:39
Zitat:
angeeigte_Bilder
ist das einfach ein Zähler der beim Timer hoch gezählt wird ?
muss er auch auf 0 gesetzt werden ? oder eher nicht??
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz