#1
Et le main :
De cette façon ça fonctionne, mais je ne comprend pas pourquoi avec un seul IEventReceiver ça ne marche pas.
Merci de votre aide
18-02-2008 13:25:58
- Tank
- Membres

- Date d'inscription:
- Messages: 2
- IP: 86.207.123.254
- Courriel
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
#2
Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.
18-02-2008 16:56:07
- Copland
- Modérateurs
- Date d'inscription:
- Messages: 657
- IP: 82.125.46.213
- Courriel Site web
Regarde le code du viewer fourni avec irrlicht, tu y trouveras tes réponses je pense.
Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.
Hors ligne
#3
18-02-2008 19:04:55
- bebe
- Membres
- Date d'inscription:
- Messages: 18
- IP: 79.82.226.92
- Courriel
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
#4



