Parallele Tastaturabfrage
-
hallo leute!
ich bin neu in diesem forum und versuche c++ ueber c zu lernen.
ich weiss nicht ob dieses problem schon viele hier gepostet haben... wenn ja postet bitte die links.
also das projekt ist ein spiel im dos modus basierend auf ascii-grafik.
aber das problem ist das ich keine parallelen tastaturbefehle ausfuehren lassen kann(zb laufen und springen gleichzeitig), da die funktionen die mir zur zeit zur verfuegung stehen rein fuer text und nicht bios/hardware-nah genug sind...
ich habe es schon mit getkey() versucht aber meine compiler scheinen es nicht zu kennen...
ich habe das projekt mit borland c++ 5.5 angefangen and habe mir dann visual c++ 6 geholt um zu sehen ob der die getkey() funktion kennt... aber da spuckt er mir etliche warnungen aus und failed beim compilen.
ich entschuldige mich wenn ich unter dem niveau dieses forums bin und bedanke mich schon im vorhinein fuer antworten!
-
Dieser Thread wurde von Moderator/in Shade Of Mine aus dem Forum ANSI 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.
-
Mmmhh...
Also da musst du schon den Quellcode posten, damit dir geholfen werden kan...
-
#include <stdio.h> #include <conio.h> #include <ctype.h> #include <dos.h> void main(void) { int input; int p1_x = 1; int p1_y = 10; textmode(C4350); do { clrscr(); // ab hier wird gezeichnet gotoxy(p1_x + 6, p1_y); cputs("__"); gotoxy(p1_x + 5, p1_y + 1); cputs("\/\.\.\\"); gotoxy(p1_x + 4, p1_y + 2); cputs("q \> p"); gotoxy(p1_x + 4, p1_y + 3); cputs("\_\\ \`\/\_"); gotoxy(p1_x + 3, p1_y + 4); cputs("\/ \/ \\"); gotoxy(p1_x + 2, p1_y + 5); cputs("\/ \/\_\_ \\ \\\_\_"); gotoxy(p1_x + 2, p1_y + 6); cputs("\\\_\_\_\_E \\\_\_\_E"); gotoxy(p1_x + 4, p1_y + 7); cputs("\|\_\_\_\_\|"); gotoxy(p1_x + 4, p1_y + 8); cputs("\/ \\"); gotoxy(p1_x + 3, p1_y + 9); cputs("\/ \/\\ \\"); gotoxy(p1_x + 2, p1_y + 10); cputs("\/ \/ \\ \|"); gotoxy(p1_x + 1 , p1_y + 11); cputs("\/\_\_\/ \|\_\_\|"); gotoxy(p1_x, p1_y + 12); cputs("\|\_\_\_\\ \|\_\_\_\\"); //Zeichnung Ende input = getch(); //Tastaturabfrage input = toupper(input); switch (input) //Evaluirung { case 'A': if (p1_x > 1) p1_x--; break; case 'D': if (p1_x < 66) p1_x++; break; } } while(input != 'Q'); //Exitabfrage }
-
Also, ob das mit dem "gleichzeitigen" Abfragen von mehreren Tasten so einfach funktioniert, habe ich meine Bedenken. Auf jeden Fall solltest du dir mal kbhit() aus der conio.h ansehen. Diese Funktion sagt dir schon mal, ob überhaupt eine Taste gedrückt wurde.
Hier ein kleines Konstrukt für scheinbar gleichzeitige Tastatureingabe und Bildschirmausgabe:
... char ende = 0; clock_t aktion; ... aktion = clock() + 19; do { //Bildschirmausgabe ... //Zeit für nächste Aktion abgelaufen? if(aktion < clock()) { //Aktion(en) die nach bestimmter Zeit ausgeführt werden soll(en) ... aktion = clock() + 19; } //Was einem sonst noch so einfällt ;) ... //Eingabe if(kbhit()) { switch(getch()) { case 0: //Es wurde eine Sondertaste gedrückt (z. B. F1) switch(getch()) { ... //Abfrage der Sondertasten } break; case 27: //ESC ende = 1; break; ... //andere Tastaturabfragen } } }while(!ende); ...