keine wartende Tastatureingabe
-
mh aber ist das nicht trotzdem Zeitpunktabhänging???
solange ich ja jetzt nicht das 'A' betätige, läuft mein Programm doch nicht weiter oder???
-
zarilo schrieb:
solange ich ja jetzt nicht das 'A' betätige, läuft mein Programm doch nicht weiter oder???
Jein! Es läuft zwar schon weiter, aber das Programm muß auch
die Funktion kbhit() abfragen. Eine richtige nicht-Polling-
Lösung müßte schon mit einem separaten Thread realisiert werden,
der ständig die Tastatur abfragt und, bei Druck einer Taste,
sofort reagiert und eine entsprechende Funktion aufruft.Da ich mich aber mit C-Threads nicht auskenne, kann ich hierzu nichts sagen...
-
Javaner schrieb:
Da ich mich aber mit C-Threads nicht auskenne, kann ich hierzu nichts sagen...
hast du schon und das stimmt auch weitgehend.
-
hi
und wieso kann ich mit der mit dem cursor nicht ganz rauf?hier download link zur main.exe:
edit by Tim: eine executable bringt hier nichts. Und ich will hier auch nicht exes verlinkt haben, da könnte alles dahinter stecken.bitte um schnelle hilfe
lg
-
langsammm schrieb:
hier download link zur main.exe:
'ne exe hilft nix. du musst den quellcode zeigen...
-
char input; const int xch = 10; const int ych = 20; int x = xch; int y = ych; gotoxy(x, y); while(true) { input = _getch(); if(input == 119 || input == 87) // W { gotoxy(x,y - 1); } else if(input == 65 || input == 97) // A { gotoxy(--x, y); } else if(input == 115 || input == 83) // S { gotoxy(x, ++y); } else if(input == 68 || input == 100) // D { gotoxy(++x, y); } else { std::cout << "Taste nicht gefunden."; gotoxy(++x, ++y); } }
-
??
-
was verstehst du denn an der obigen lösung nicht?
-
langsam schrieb:
char input; const int xch = 10; const int ych = 20; int x = xch; int y = ych; gotoxy(x, y); while(true) { input = _getch(); if(input == 119 || input == 87) // W { gotoxy(x,y - 1); } else if(input == 65 || input == 97) // A { gotoxy(--x, y); } else if(input == 115 || input == 83) // S { gotoxy(x, ++y); } else if(input == 68 || input == 100) // D { gotoxy(++x, y); } else { std::cout << "Taste nicht gefunden."; gotoxy(++x, ++y); } }
und wieso kann ich mit der mit dem cursor nicht ganz rauf?
????
-
langsam schrieb:
if(input == 119 || input == 87) // W { gotoxy(x,y - 1); } else if(input == 65 || input == 97) // A { gotoxy(--x, y); } ...
Vergleich doch mal den prinzipiellen Aufbau der beiden Abfragen, vielleicht erkennst du ja den Unterschied.
(im ersten Fall schiebst du den Cursor zwar eine Zeile gegenüber deiner aktuellen Position nach oben, korrigierst die Position aber nicht)
PS: Bitte verwende char-Literale anstelle der Magic Numbers
PPS: Und wo wir gerade dabei sind, solltest du dich mal mit switch() auseinandersetzen.