Tastenabfragen?
-
Hallo,
ich habe ein Problem. Ich wollte ein Snake-Spiel in C++ schreiben. Dafür wollte ich die W A S D Tasten benutzen. Wie kann ich die dauerhaft abfragen? Soll ich in einer Schleife eine if-Abfrage einbauen, welche schaut, ob die Tasten gedrückt sind? Wie mache ich das?LG
-
Brauchst du systemabhängige Funktionen für. Welches Betriebssytem? Wobei du dann aber auch gleich ein fertiges Spieleframework benutzen kannst, die teilweise plattformunabhängig sind. Möchtest du lieber nach dem Systemforum deiner Wahl verschoben werden oder zur Spieleprogrammierung? Für Spieleframeworks brauchst du in der Regel ein solides Grundwissen in C++, dafür lernst du dann aber mehr über echte Spieleprogrammierung.
-
Hm, find ich ziemlich schwierig in Standard-C++.
Kann man eigentlich mit dem Standard ein Zeichen abfragen ohne dabei Enter drücken zu müssen?
-
Standard weiß ich auch nicht, aber da oben wahrscheinlich mit
windows.h
könnte manGetAsyncKeyState()
nehmen.
-
@zeropage sagte in Tastenabfragen?:
Standard weiß ich auch nicht, aber da oben wahrscheinlich mit
windows.h
könnte manGetAsyncKeyState()
nehmen.Je nachdem ... für ein Konsolenprogramm würde ich unter Windows ReadConsoleInput vorschlagen.
-
Und
kbhit()
mitgetch()
wäre unter C einzuordnen, nicht wahr?
-
@zeropage
kbhit() is keine Standardfunktion; keine Ahnung, ob die von jedem Compiler zur Verfügung gestellt wird.
-
Sag ich ja, kein C++ Standard.
-
@zeropage
Auch kein C - Standard.
-
Hi redexception,
ob nun Standard oder nicht, aber ich habe dafür unter Windows mit 'Visual Studio' und 'MinGW' die Funktion "_getche(void)" aus der <conio.h> genutzt.
Siehe auch hier aus dem Forum:
https://www.c-plusplus.net/forum/topic/39320/getch-getche-kbhit-getcharUm den gleichen (selben?) Effekt mit 'gcc' und 'clang' zu erzielen, nutzte ich die im 3. Beitrag (37) vorgeschlagene Funktion aus folgendem Beitrag:
https://stackoverflow.com/questions/7469139/what-is-the-equivalent-to-getch-getche-in-linuxGruß und viel Glück mit Deinem Spiel
Helmut
-
Naja, Grafik wirst auch nicht mit dem "Standard" machen .... selbst wenn im textmodus Kacheln übers Terminal rasseln lassen willst, wirst mit iostreams nicht hinkommen.
Mit was willst deine Ausgaben / Visualisierung machen ? vielleicht hat diese Lösung auch was in richtung IO zu bieten, was benutzen kannst ?
-
@eigenartig sagte in Tastenabfragen?:
Hm, find ich ziemlich schwierig in Standard-C++.
Kann man eigentlich mit dem Standard ein Zeichen abfragen ohne dabei Enter drücken zu müssen?
Nein.