JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=a81f533e4b831f4f130c018374cae06aMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Nachrichtenschleifen-Prob

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Rodney
Junior JLI'ler



Anmeldedatum: 24.09.2003
Beiträge: 60

Medaillen: Keine

BeitragVerfasst am: 28.07.2004, 10:54    Titel: Nachrichtenschleifen-Prob Antworten mit Zitat

Code:

while(msg.message != WM_KEYDOWN)

    {
   
            TranslateMessage(&msg);
            DispatchMessage(&msg);
       
            QueryPerformanceCounter((LARGE_INTEGER*)&CurCount); // aktuellen Zählerstand holen
           
           
            if(CurCount > NextFrame)// wenn es Zeit für das nächste Frame ist
            {
                schleife();
            DDrawObjekt.Flip();
               
                NextFrame = CurCount + Offset; //Abstand zum nächsten Frame berechnen
            }
   
    }
   
   
    return 0;// Rückgabewert an Windows
}


Bei dieser Schleife hängt sich das Prog immer total auf, ich muss den PC manuell resetten. Was ist daran falsch?

Das ganze trat erst auf nachdem ich die Frame-Begrenzung eingebaut hab sie wird folgendermaßen initalisiert:
Code:

    if(!QueryPerformanceFrequency(
                   (LARGE_INTEGER*)&Frequency))
    {
        MessageBox(0,"Performancecounter nicht vorhanden.","Fehler",MB_OK);
        return -1;
    }

   
    Offset = Frequency / Framerate;// Abstand zwischen zwei Frames berechnen
    QueryPerformanceCounter((LARGE_INTEGER*)&CurCount);// aktuellen Zählerstand Zeit speichern
    NextFrame = CurCount + Offset;// berechnen wann nächstes Frame dargestellt wird
   


- MfG Rodney
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



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

BeitragVerfasst am: 28.07.2004, 12:11    Titel: Antworten mit Zitat

Wasfür ein Rechner hast du?
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Rodney
Junior JLI'ler



Anmeldedatum: 24.09.2003
Beiträge: 60

Medaillen: Keine

BeitragVerfasst am: 28.07.2004, 12:42    Titel: Antworten mit Zitat

Windows XP SP1, 2GHZ, 512DDR Ram, 80Gbyte Platte, GFS 4 Ti 4200
mit Visual C++ 6.0 und dem DirectX 9 SDK
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 28.07.2004, 14:52    Titel: Antworten mit Zitat

Kann es sein, dass du vielleicht inder Funktion "schleife()" eine Endlosschleife hast?
Das wäre jetzt die einzigste Fehlerquelle, die ich entdecken kann.
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



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

BeitragVerfasst am: 28.07.2004, 16:46    Titel: Antworten mit Zitat

Nein, er hat generell eine Endlosschleife. Ich sehe hier keine Funktion die deine Windowsnachrichten aus dem Queue entfernt, Bufferüberlauf möglich, kriegt immer dieselbe Nachricht, man kann das Programm dann niemals normal beenden,etc...

Schreib das vor TranslateMessage:

PeekMessage(&msg,NULL,0,0,PM_REMOVE);
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Rodney
Junior JLI'ler



Anmeldedatum: 24.09.2003
Beiträge: 60

Medaillen: Keine

BeitragVerfasst am: 29.07.2004, 13:19    Titel: Antworten mit Zitat

danke, daran lags...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
TheMillenium
Dark JLI'ler



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

BeitragVerfasst am: 29.07.2004, 14:53    Titel: Antworten mit Zitat

Ce n'est rien. Very Happy
_________________
The source of all power is in its destiny...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung 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