Switch-Anweisung Problem
-
Hallo an Alle,
ich habe eine Frage:
Ich habe in meinem Programm eine Switch-anweisung die so aussieht:void tasten (unsigned char key, int xmouse, int ymouse) { switch (key){ case 'w': b+=0.025; break; case 'a': a-=0.025; break; case 's': b-=0.025; break; case 'd': a+=0.025; break; case 'r': a = 0.0f; b = 0.0f; break; default: break; } glutPostRedisplay(); }
Wenn ich w drücke geht ein Punkt um 0.025 nach oben wenn ich s drücke nach unten usw...
Aber ich kann immer nur eine Aktion durchführen, nach oben oder nach unten oder nach rechts/links, ich würde es aber auch gerne diagonal haben!
Könnte mir jemand verraten wie das geht!
Vielen Dank schonmal im vorraus!
MfG Justus
-
Mit Standardmitteln bekommst Du es nicht mit, wann welche Tasten gedrückt sind und kannst daher auch nicht auf
[w]
+[a]
mit "Rauf und Rechts" reagieren.Plattformabhängig hilf für Windows GetAsyncKeyState().
-
Also gibt es keine Möglichkeit soetwas mit der standart Bibliothek hinzubekommen?
-
Nur mit Standard-C nicht.
btw:
voraus
Standard
-
Du kannst aber auf 'q' und 'e' testen.
-
Das Problem liegt ganz allein an GLUT (wer verwendet das heutzutage überhaupt noch?). Wenn du zwei Tasten drückst, sollte GLUT dir auch zwei mal die Funktion aufrufen. Da ich keine Ahnung von GLUT habe, gibt es für mich nur zwei Möglichkeiten: a) Du verwendest GLUT falsch oder b) GLUT ist dumm.