Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
abc_d JLI Master Trainee

Alter: 35 Anmeldedatum: 27.01.2003 Beiträge: 615
Medaillen: Keine
|
Verfasst am: 16.09.2003, 15:00 Titel: Zeitberechnung |
|
|
Hi,
ich verwende die Zeitverwaltung aus dem 2. Buch. Um meine objekte zu animieren will ich ein 30 einer Sekunde ausrechnen, doch all meine versuche sind bis jetzt fehlgeschlagen. Wie mache ich das?
PS:
Hier die Zeitberechnung:
Code: |
QueryPerformanceCounter((LARGE_INTEGER*)& ZAktuell);
//Jede Sekunde
if(ZAktuell - ZLastSecound >Frequenz)
{
Secound++;
ZLastSecound = ZAktuell;
iFramerate=iFrames;
iFrames=0;
}
else
{
iFrames++;
}
|
_________________ http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.
Never touch a running System - der Systemling |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 16.09.2003, 19:38 Titel: |
|
|
Du willst ein dreizigstel einer Sekunde ausrechnen ? Ist das so richtig ?
Geht doch einfach:
Code: |
float drezigstel=1/30.0f;
|
_________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
 |
abc_d JLI Master Trainee

Alter: 35 Anmeldedatum: 27.01.2003 Beiträge: 615
Medaillen: Keine
|
Verfasst am: 17.09.2003, 17:22 Titel: |
|
|
Sorry falsch ausgedrück !
Ich will das jede 30stel sekunde eine schleife ausgeführt wird, wie if(ZAktuell - ZLastSecound >Frequenz) jede sekunde ausgeführt wird. _________________ http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.
Never touch a running System - der Systemling |
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 17.09.2003, 18:06 Titel: |
|
|
dann einfach
if(ZAktuell - ZLastSecound >time_delay)
time_delay=1000/30;
??? _________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
abc_d JLI Master Trainee

Alter: 35 Anmeldedatum: 27.01.2003 Beiträge: 615
Medaillen: Keine
|
Verfasst am: 17.09.2003, 18:16 Titel: |
|
|
Ich glaube man muss die Frequenz mit einbeziehen, die der QueryPerformanceCounter beim Booten vergiebt.
aber if(ZAktuell - ZLastSecound >Frequenz/30) geht merkwürdigerweise nicht! _________________ http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.
Never touch a running System - der Systemling |
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 17.09.2003, 18:21 Titel: |
|
|
Code: |
// 64-Bit LONGLONG Werte
LONGLONG Frequenz;
LONGLONG Abstand;
LONGLONG NaechstesFrame;
LONGLONG AktuelleZeit;
// Frequenz abfragen
if(!QueryPerformanceFrequency((LARGE_INTEGER*)&Frequenz))
{
Error("Performance Counter nicht vorhanden");
}
// Tickabstand zwischen zwei Frames brechnen
Abstand = Frequenz / 30;
// Stand des PC abfragen
QueryPerformanceCounter((LARGE_INTEGER*)&AktuelleZeit);
// Berechnen, wann das nächste Frame erzeugt werden soll
NaechstesFrame = AktuelleZeit + Abstand;
ueryPerformanceCounter((LARGE_INTEGER*)&AktuelleZeit);
// Wenn wieder 1/30s vergangen ist
if(AktuelleZeit > NaechstesFrame)
{
...
}
|
_________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
abc_d JLI Master Trainee

Alter: 35 Anmeldedatum: 27.01.2003 Beiträge: 615
Medaillen: Keine
|
Verfasst am: 18.09.2003, 14:56 Titel: |
|
|
/Me slaps BlackLordOfDragons around a bit with a large trout!!
Arg, das wäre ja im buch gestanden! _________________ http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.
Never touch a running System - der Systemling |
|
Nach oben |
|
 |
|