Je suis en train de programmer un jeu en "OpenGL" et en utilisant "Gtkmm" comme gestionnaire de fenêtres. Je veux utiliser le clavier pour déplacer la caméra (ainsi, «UP-key» pour avancer, «DOWN-key» pour reculer, etc ...)Jeu OpenGL/Gtkmm - Déplacement du clavier
Il y a quelque temps, quand j'ai programmé en Java, j'ai Lorsque l'application a reçu par exemple le signal "UP-key- press", elle a ensuite défini l'indicateur "shouldMoveForward" sur "true" et a ensuite reçu la touche "UP". - release "signal, il remet le drapeau à" false ". Et la "boucle de jeu" continuellement vérifié pour ce drapeau, et si c'était vrai, il déplace la caméra vers l'avant, sinon il n'a rien fait.
Alors que je voudrais utiliser la même technique dans "Gtkmm". Je viens donc de overrided ces fonctions de mon « Gtk :: DrawingArea »:
bool Gtk::Widget::on_key_press_event(GdkEventKey* event)
bool Gtk::Widget::on_key_release_event(GdkEventKey* event)
Mais le problème est en ceci: quand je par exemple appuyer sur la touche « UP » et maintenez-le pendant 5 secondes, cette séquence de signaux est émis:
press ...<little time waiting>... release press release press release press release .......... press release press release
La situation précédente apparaît lorsque je courais mon jeu « sur Linux ».
Quand je suis « sous Windows », il est comme je veux que ce soit, ainsi:
press ...<little time waiting>... press press press press press .......... press press release
Donc, cela semble être une solution « non-portable » pour caméra mobile dans Gtkmm. solution pour obtenir la caméra mobile à l'aide Gtkmm en tant que gestionnaire de fenêtres
Ainsi est-il un autre (« PORTABLE »)?