ich hänge seit 2 Tagen an folgendem Problem fest und bin echt am verzweifeln. (:surrender
Ich habe wie hier ... http://http://www.codeworx.org/gamedev_tuts_framebremse.php ... erklärt eine Framebremse in mein Programm eingebaut. Die funktioniert auch wunderbar! AAAABER - wenn ich nun eine Taste auf der Tastatur drücke oder die Maus bewege stockt mein Programm extrem !?!? häää? Das steht doch eigentlich in keinerlei Zusammenhang!?
C++:
int startzeit; bool done=false;
// Initialisierungen etc
while(!done) { startzeit = GetTickCount();
// Alle Berechnungen in der Mainloop, Keyboard+Mausabfrage, Sound, Rendern, Verarbeitung der Windows-messages ...
while( (GetTickCount() - startzeit ) < 16); // ich will ~60Fps { // Hier passiert nichts } }
einen Tastendruck frage ich ähnlich wie in den NeHe Tutorials ab ...
C++:
void Checkeyb() // wird einmal in der Mainloop aufgerufen { if (keys[VK_RETURN] && !pkey[VK_RETURN]) { tuwas(); // ...wenn gerade return gedrückt ist & vorher nicht gedrückt war } // ... viele weitere tasten for (loop=0;loop<256;loop++) // array speichert für jede Taste "gedrückt/losgelassen" { if (keys[loop]) pkey[loop]=true; else pkey[loop]=false; } }
void CheckMouse() // wird einmal in der Mainloop aufgerufen { mold.x=m.x; // alte Mauskoordinaten speichern mold.y=m.y; GetCursorPos(&m); // aktuelle Mauskoord. in m speichern }
was passiert wenn du den framerate-begrenzer auskommentierst? läufts dann wieder normal? wenn nicht, haste woanders nen fehler drin -- class God : public ChuckNorris { };