Tastendruck einlesen
-
ich programmiere unter C/C++ MS Visual Studio 2008 Express auf Win XP
Ich möchte ein kleines Spiel programmieren. Die Steuerung soll über die Tastatur erfolgen.
Jetzt suche ich einen Befehl um den Tastendruck einzulesen.
z.B. getc() liesst die Taste nur beim drücken ein, nicht beim gedrückt halten [brauch ich aber]. Ausserdem funktioniert getc() nur für eine Taste, nicht für mehrere Tasten die gleichzeitig gedrückt sind [brauch ich auch].Wie lautet eine passende Funktion? bzw. Wo muss ich nachschlagen?
Gruß
Flipp
-
Ich denke da kann dir nur die WinAPI weiterhelfen, suche doch mal mit der Forumssuche im WinAPI Forum nach "Tastendruck"
-
Entweder da:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39320.htmlOder du musst dich wirklich mit der WinAPI beschäftigen.
Da kannst du alles mit anstellen:
http://msdn.microsoft.com/en-us/library/ms645530(VS.85).aspx
-
Oder du nimmst entsprechende Toolkits. Zum Beispiel SDL oder Qt.
-
hab mich für folgendes entschieden:
GetAsyncKeyState() // #include <Windows.h>
Die Virtual Key-Codes stehen hier:
http://msdn.microsoft.com/en-us/library/ms645540(VS.85).aspxdanke für eure Hilfe
Flipp
-
wobei für spiele macht man das anders
das läuft nicht nach dem schema:
while (taste unten) { gehe nach vorne; }
ab sondern man benutzt eine main shcleife in der alles einzeln abläuft
while (gamestate != 0 ) { leseTasten(); berechneFigurPosition(); KI-Berechnung(); // blabla }
nur mal so am rande...
-
while (gamestate != 0 ) { leseTasten(); berechneFigurPosition(); KI-Berechnung(); // blabla }
... und leseTasten soll dann über GetAsyncKeyState() laufen, oder hast du ne bessere Idee?
-
Skym0sh0 schrieb:
...
Ich verstehe auch nicht ganz, was du meinst. Ich gehe mal davon aus, dass du damit sagen willst, dass man nicht in einer Funktion alle Bewegungen macht und wenn die Fertig sind geht es weiter zur Render Funktion.
Aber was das mit GetAsyncKeyState zu tun hat, weiss ich nicht.
Je nach Input, mache ich das mit einer ähnlichen Funktion, wenn ich eine andauernde Aktion haben will. Wenn ich lediglich einen Tastendruck haben will, dann nehme ich klar auch WM - Messages.
Aber für den Anfang sollte diese Funktion vollauf genügen.
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.