Eine Funktion wie "iskeypressed"?
-
Hi,
wie kann ich (indem ich nur einfach eine sache implementiere, was schon (hoffentlich) dabei ist) abfragen, ob z.b. gerade 'r' gedrückt ist?Hoffe auf schnelle Antwort
-
sowas gibt es in standard C++ nicht.
Betriebssystem?
-
windows XP
-
#include <conio.h> while( ... ) { while( !kbhit() ) // solange keine taste gedrückt wurde { ... run run run } char c = getch(); // gedrückte taste holen if( c == 'j' ) jump; }
-
#include <windows.h> ... if(GetAsyncKeyState (0x52)&0x80) //0x52 = r Taste (Virtual Key) { ... }
-
daraus kannste gleich n paar makros machen
#include<windows.h> #include<iostream> using namespace std; ... #define IsKeyDown(VK_CODE) (GetAsyncKeyState(VK_CODE)&0x80?1:0) #define IsKeyUP (VK_CODE) (GetAsyncKeyState(VK_CODE)&0x80?0:1) ... int main() { ... cout<<"Leertaste zum beenden..."<<endl; while(IsKeyUp(VK_SPACE)); return(0); }
-
Danke
-
Müsste es nicht 0x8000 heißen statt 0x80?
-
Hast recht
also so hier
#define IsKeyDown(VK_CODE) (GetAsyncKeyState(VK_CODE)&0x8000?1:0) #define IsKeyUP (VK_CODE) (GetAsyncKeyState(VK_CODE)&0x8000?0:1)
Hier ist übrigens ne Tabelle mit den VK Codes
http://delphi.about.com/od/objectpascalide/l/blvkc.htm
-
Oder gleich hier:
http://msdn2.microsoft.com/en-us/library/ms645540(VS.85).aspx
-
Warum muss denn noch das &0x8000 hinten ran? In der MSDN stehen die Codes doch mit 0xYY und nicht 0x8YY ?
-
hmmmm schrieb:
Warum muss denn noch das &0x8000 hinten ran? In der MSDN stehen die Codes doch mit 0xYY und nicht 0x8YY ?
-
abkotzer schrieb:
hmmmm schrieb:
Warum muss denn noch das &0x8000 hinten ran? In der MSDN stehen die Codes doch mit 0xYY und nicht 0x8YY ?
idiot^^
-
hmmmm schrieb:
Warum muss denn noch das &0x8000 hinten ran? In der MSDN stehen die Codes doch mit 0xYY und nicht 0x8YY ?
gib mal den link !
-
steht auf der vorseite^^
-
du meinst die virtual key codes ? das hat doch mit der 0x8000 nichts zu tun .
0x8000 steht für 1000000000000000 und damit testet man ob das most significant bit gesetzt ist !
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.