Irgendeine Taste abfragen

FSA

Erfahrenes Mitglied
Hallo
Ich habe ein Spiel in Arbeit. Das besteht aus Render und Move Funktionen ( bis jetzt )
In der Move funktion die ungefähr ( bei mir ) 600x die Sekunde aufgerufen wird möchte ich nun eine verzweigung machen die dann reagiert wenn irgendeine Taste der Tastatur gedrückt wurde.
Also:
if( tastegedrückt() ) ...
Ganz wichtig das Programm darf nicht anhalten!
Ich habe schon mit _kbhit, kbhit, getch, und GetAsyncKeyState versucht leider ohne erfolg.
Danke
 
Ähm ja ok daran habe ich auch schon gedacht. Allerdings wäre das dann auf das ganze spiel bezogen.
Ich will aber nur in der einen Funktion auf Tasten prüfen.
Danke
 
Tastendruck ist eine Windows message, die du als Event im WndProc bekommst und auf die du reagieren kannst.
Die einzige Möglichkeit mitten in der Verarbeitung von einem anderen Event die Nachrichtenschleife zu prüfen ist PeekMessage().
Ob zwischen den Nachrichten die da warten auch Tastendrücke sind, und ob die zu deiner Funktion passen musst du dann selber prüfen, aber selbst das geht nur, solange dein Fenster den Focus hat und das Event was du gerade verarbeitest zum selben Prozess gehört.
In jedem Fall hast du KEINE Chance das Programm dabei nicht anzuhalten, weil eine Anwendung (ohne Threads) nicht mehr als eine Sache auf einmal machen kann.
Deine Funktion wird inkl. aller PeekMessage() und was immer du sonst in der Funktion anstellst, den gesamten Rest der Anwendung auf Eis legen, bis die Funktion durch ist.
 
MSVC++: Was meinst du mit "auf ein Spiel bezogen, aber nur in der Funktion"?
Die Messages gibts unabhängig vom Spaßfaktor :D
 
OK Ich habe es mir jetzt doch noch anderst überlegt^^
Ich habe es so gelöst: for schleife und dann GetAsyncKeyState(i); Ich weiß nicht gerade die Beste Lösung aber es Geht ^^
Danke
 
Zurück