Bonjour à tous !
J'ai un problème étrange... avec IEventReceiver, lorsque j'appuis sur un bouton du gui, et qu'ensuite j'appuis sur une touche du clavier, cette touche est répétée 2 fois.
Voici mes classes :
class KeyEventReceiver : public IEventReceiver { public: bool OnEvent(const SEvent &event) { if(event.EventType == EET_KEY_INPUT_EVENT && event.KeyInput.PressedDown) { std::cout << "key: " << event.KeyInput.Char << std::endl; } return false; } };
class GuiEventReceiver : public IEventReceiver { public: bool OnEvent(const SEvent &event) { if(event.EventType == EET_GUI_EVENT && event.GUIEvent.EventType == gui::EGET_BUTTON_CLICKED) { std::cout << "bouton: " << event.GUIEvent.Caller << std::endl; } return false; } };
Et le main :
int main() { // IEventReceiver KeyEventReceiver keyEvents; GuiEventReceiver GuiEvents; // creation de la fenetre IrrlichtDevice *device = createDevice(video::EDT_DIRECT3D9, core::dimension2d<s32>(110, 40), 32, false, false, true, &keyEvents); video::IVideoDriver *driver = device->getVideoDriver(); gui::IGUIEnvironment *guienv = device->getGUIEnvironment(); // ajout d'un bouton guienv->addButton(core::rect<s32>(10, 10, 100, 30), 0, 1, L"Bouton de test"); // assigne le IEventReceiver perso au guienv guienv->setUserEventReceiver(&GuiEvents); // dessine while(device->run()) { driver->beginScene(true, true, video::SColor(0, 100, 100, 100)); guienv->drawAll(); driver->endScene(); } device->drop(); return 0; }
De cette façon ça fonctionne, mais je ne comprend pas pourquoi avec un seul IEventReceiver ça ne marche pas.
Merci de votre aide
Hors ligne
Regarde le code du viewer fourni avec irrlicht, tu y trouveras tes réponses je pense.
Hors ligne
ou alors vas chercher ce que tu veux ici : http://irrlicht.sourceforge.net/phpBB2/ … hp?t=24508
prend le dernier code posté, c'est vraiment impec
Hors ligne
ok merci bien.
Hors ligne
Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
---|---|---|---|---|
Corrections |
|
xhtml 1.0 css 2.1 Propulsé par FluxBB Traduit par FluxBB.fr |
882 membres 1429 sujets 11119 messages |
Dernier membre inscrit: LiseBuisson96 16 invités en ligne Aucun membre connecté RSS Feed |