2016-09-18 10 views
1

Ich habe einige grundlegende Code, um Schlüssel hoch zu erfassen und herunterzufahren Ereignisse mit Überangebot.Schwemme - eine Taste gedrückt halten

Wenn ich eine Taste gedrückt halte, erhalte ich kontinuierliche Ereignisse (runter/hoch/runter/hoch/runter/hoch/........) statt der beabsichtigten ab (einmal, zu Beginn) und oben (einmal am Ende)

#include <GL/glut.h> 
#include <iostream> 

void keyDown (unsigned char key, int x, int y) 
{ 
    std::cout << "keydown " << key << "\n"; 
} 

void keyUp (unsigned char key, int x, int y) 
{ 
    std::cout << "keyup " << key << "\n"; 
} 

void render(void) 
{ 
    std::cout << "render\n"; 
} 

int main(int argc, char** argv) 
{ 
    glutInit(&argc, argv); 
    glutInitDisplayMode(GLUT_SINGLE); 
    glutInitWindowSize(300, 300); 
    glutInitWindowPosition(100, 100); 
    glutCreateWindow("Hello world :D"); 
    glutDisplayFunc(render); 
    glutKeyboardFunc(keyDown); 
    glutKeyboardUpFunc(keyUp); 
    glutMainLoop(); 

    return 0; 
} 

Jeder Eingang geschätzt. Danke

Antwort

2

Ihr Problem ist, dass die automatische Wiederholungstaste eingeschaltet ist. So schalten Sie es aus, nur setzen, an Ihrer Initialisierungsphase diesen Befehl ein:

glutSetKeyRepeat(GLUT_KEY_REPEAT_OFF); 

Man Seite an: https://linux.die.net/man/3/glutsetkeyrepeat

+1

Perfect. Arbeitete eine Belohnung! Danke – Beakie

+0

(In die Bearbeitungsversion geändert). Danke noch einmal – Beakie

Verwandte Themen