![]() |
Schneller Timer gesucht
Hallo,
ich hab folgendes Problem: ich brauch einen Timer oder so was ähnliches, das jedoch schneller ist als der standard-Windows-Timer... ich will nämlich, dass z.b. die geschwindigkeit eines bewegten Kastens auf dem Bildschirm auf jedem Rechner gleich ist. Wie machen das denn die normalen 3d spiele??? es kann auch ruhig keinen timer benutzen und 100% auslastung benötigen. Hautsache es geht schnell!!! Schonmal Danke!!! Gruß Simon |
Re: Schneller Timer gesucht
Zitat:
|
Re: Schneller Timer gesucht
aber wie wird das da gelöst?
es soll nicht unbeding an die grafik gebunden sein. ich brauch "nur" so nen timer. Oder besser einen algorithmus, der halt dann 100% auslastung hat, der mir aber garantiert, dass es überall gleich schnell läuft (solange der rechner das mitmacht...) ich wollte eigentlich permanent die zeit abfragen und mich danach richten, gettickcount ist dazu aber zu ungenau... |
Re: Schneller Timer gesucht
Erzeug Dir eine Schleife und miss beim Programmstart z.B. 100000 Durchgänge. Daraus kannst du eine individuelle Wartezeit zwischen zwei Frames ausrechnen.
|
Re: Schneller Timer gesucht
ja aber das ist doch nicht auf jedem rechner gleichschnell, oder blick ichs jetzt net???
|
Re: Schneller Timer gesucht
das kannst du ja in deinem programm auf jedem rechner ausführen lassen.
|
Re: Schneller Timer gesucht
das bedeutet ich soll die zeit für 10000000 schleifendurchgänge messen und dann dementsprechend ausrechnen, wie viele schleifendurchgänge ich z.b. für eine ms brauche???
wie messe ich denn die zeit genauer als mit gettickcount??? |
Re: Schneller Timer gesucht
glaub der befehl heisst QueryPerformanceTimer bzw. QueryPerformanceFrequency
|
Re: Schneller Timer gesucht
das ich hier um die uhrzeit noch so gute antworten bekomme hätte ich nicht gedacht!!!
vielen dank schonmal, aber ich geh jetzt au langsam heia und probiers dann morgen aus. Dann kann ich euch vielleicht mit neuen fragen quälen... also dann gute nacht miteinander (falls ihr noch vorhabt zu schlafen...) Gruß Simon |
Re: Schneller Timer gesucht
|
Re: Schneller Timer gesucht
|
Re: Schneller Timer gesucht
Erstmal danke für die vielen Antworten!
Ich denk mit den Funktionen QueryPerformanceTimer bzw. QueryPerformanceFrequency ist mein Problem gelöst... Danke Gruber_Hans_12345! @Grandalfus: Echt gutes Tutorial! Aber eine Variante für nen Timer hätte ich noch. Und zwar ist das eine Komination der Sleep Variante und der High Performance Variante. Das ist jetzt ein Beispiel, so wie ich es zur Zeit mache: (Zuerst den großen Zeitabschnitt grob mit Sleep abwarten. Dann den Rest genau mit der HighPerformance-methode abwarten.)
Delphi-Quellcode:
QueryPerformanceCounter(a);
Restzeit := Zeit - (b-a)*1000 div f; while RestZeit > 70 do begin Application.ProcessMessages; if abbruch then Exit; Sleep(50); QueryPerformanceCounter(b); Restzeit := Zeit - (b-a)*1000 div f; end; QueryPerformanceCounter(b); while s > (b-a) do begin QueryPerformanceCounter(b); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:06 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 by Thomas Breitkreuz