Mit OpenGL /GLUT wie würde ich erkennen, wenn zwei Tasten, sagen wir 'a' und 'j' zur gleichen Zeit gedrückt werden?
(Dieses Programm muss mit OSX GCC, Windows GCC, Windows VS2005 kompiliert werden, also bitte keine OS-abhängigen Hacks).
Mit OpenGL /GLUT wie würde ich erkennen, wenn zwei Tasten, sagen wir 'a' und 'j' zur gleichen Zeit gedrückt werden?
(Dieses Programm muss mit OSX GCC, Windows GCC, Windows VS2005 kompiliert werden, also bitte keine OS-abhängigen Hacks).
Versuchen Sie das Folgende:
glutIgnoreKeyRepeat
um nur physische Tastendruck-/Tastenaufwärts-Ereignisse zu erhaltenglutKeyboardFunc
um einen Rückruf zu registrieren, der auf Tastendruck-Ereignisse reagiert.glutKeyboardUpFunc
um einen Rückruf zu registrieren, der auf Keyup-Ereignisse wartet.bool keystates[256]
Array, um den Zustand der Tastaturtasten zu speichern.keystates[key] = true
.keystates[key] = false
.(keystates['a'] || keystates['A']) && (keystates['j'] || keystates['J'])
.Schauen Sie in diese Richtung. Ich habe es zwar nicht getestet, aber es sollte funktionieren. Sie benötigen möglicherweise auch glutSpecialFunc
y glutSpecialUpFunc
um Nachrichten für "besondere" Schlüssel zu erhalten.
Seien Sie sich auch bewusst, dass GLUT ein sehr altes Produkt ist und dass es viel bessere Alternativen gibt.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.