JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Zeitberechnung

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
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

BeitragVerfasst am: 16.09.2003, 15:00    Titel: Zeitberechnung Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Fallen
JLI MVP
JLI MVP


Alter: 40
Anmeldedatum: 08.03.2003
Beiträge: 2860
Wohnort: Münster
Medaillen: 1 (mehr...)

BeitragVerfasst am: 16.09.2003, 19:38    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
abc_d
JLI Master Trainee


Alter: 35
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 17.09.2003, 17:22    Titel: Antworten mit Zitat

Sorry falsch ausgedrück Laughing!
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 17.09.2003, 18:06    Titel: Antworten mit Zitat

dann einfach
if(ZAktuell - ZLastSecound >time_delay)
time_delay=1000/30;

???
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
abc_d
JLI Master Trainee


Alter: 35
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 17.09.2003, 18:16    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 17.09.2003, 18:21    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
abc_d
JLI Master Trainee


Alter: 35
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 18.09.2003, 14:56    Titel: Antworten mit Zitat

/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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum