Auf Tastendruck reagieren
-
Hi ihrs,
Ich versuch grad eine Art Snake auf der Konsole zu programmieren, nun leider hab ich keine Idee wie ich das mit der Steurung realisieren soll. Kann mir jemand einen kleinen Schupser in die richtige Richtung geben? Hab bei google etwas von "GetAsyncKeyState" gelesen aber wie das funktioniert hab ich immer noch nicht verstanden
Kann mir eienr von euch die Sache etwas näher bringen?
Vielleicht ein Codebeispiel wie man das mit den 4 Pfeilen realisiert?Plattform: Win32
Betriebs. Unabhän.: NeinCiao
anfängerin23
-
*hochschieb*
-
GetAsyncKeyState() übergibst du einen Key-Code und erhältst die Rückmeldung, ob diese Taste gerade gedrückt ist. Das heißt, du müsstest einzeln alle in Frage kommenden Tasten abfragen:
while(!ende) { //Schlange vorwärtsbewegen if(GetAsyncKeyState(VK_LEFT)&0x8000)//Wenn das MSB gesetzt ist, ist die Taste gedrückt { //drehe nach links } else if(GetAsyncKeyState(VK_RIGHT)&0x8000) { //drehe nach rechts } ... }
Alternativ kannst du auch kbhit() verwenden, um auf Tastendrücke reagieren zu können:
while(!ende) { //Animation if(_kbhit())//Taste gedrückt? { char ch=_getch(); if(ch=='\0')ch=_getch();//Sondertasten werden als 0;xx eingelesen switch(ch) { case 75: //drehe nach links break; case 77: //drehe nach rechts break; ... } } }
(für die Bedeutung der Werte siehe Konsolen-FAQ