IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Irrlicht Discussion :

[Irrlicht] Problème avec IEventReceiver


Sujet :

Irrlicht

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Janvier 2004
    Messages : 92
    Points : 70
    Points
    70
    Par défaut [Irrlicht] Problème avec IEventReceiver
    Bonjour, je conçois une GUI sous irrlicht, mais j'ai un probléme avec la classe IEventReceiver. Quand je rajoute un objet IventReceiver à mon "device", les bouttons ne réagissent plus! C'est génant... mais je ne vois pas d'ou vien le probléme. Voilà le code source.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    // RPG.cpp : définit le point d'entrée pour l'application console.
    //
    #define MENU_PRINCIPAL 0
    #define RIEN 1
    #define MENU_OPTION 2
    #define CFG_JEU 3 //configure la partie multijoueurs
    #define JEU 4
     
    //id des boutons
    #define CFG_PARTIE 100
    #define OPTION 101
     
    #include "stdafx.h"
    #include "Irrlicht.h"
    #pragma comment(lib,"Irrlicht.lib")
     
    using namespace irr;
    using namespace core;
     
    irr::IrrlichtDevice *device;
    irr::video::IVideoDriver *vd;
    irr::scene::ISceneManager *ms;
    irr::gui::IGUIEnvironment *guie;
    int QueFaire = MENU_PRINCIPAL;
     
    void MenuPrincipal(void);
     
    class CEvent : public irr::IEventReceiver
    {
    public:
    	virtual bool OnEvent(irr::SEvent event)
    	{
    		if(event.EventType == irr::EET_GUI_EVENT)
    		{
    			printf("EET_GUI_EVENT\n");
    			return true;
    		}
    		return true;
    	}
    };
     
    CEvent evt;
     
    int _tmain(int argc, _TCHAR* argv[])
    {
    	device = irr::createDevice(irr::video::EDT_DIRECT3D9,dimension2d<s32>(800,600),16,false,false,false,0);
    	vd = device->getVideoDriver();
    	ms = device->getSceneManager();
    	guie = device->getGUIEnvironment();
    	device->setEventReceiver(&evt);
     
    	while(device->run())
    	{
    		switch(QueFaire)
    		{
    		case MENU_PRINCIPAL:MenuPrincipal();break;
    		default:break;
    		}
    		vd->beginScene(true,true,video::SColor(0,0,0,0));
    		ms->drawAll();
    		guie->drawAll();
    		vd->endScene();
    	}
     
    	return 0;
    }
     
    void MenuPrincipal(void)
    {
    	QueFaire = RIEN;
    	printf("Creation du menu principal\n");
    	guie->addButton(rect<s32>(20,20,200,50),0,CFG_PARTIE,L"Partie multijoueurs");
    	guie->addButton(rect<s32>(20,70,200,100),0,OPTION,L"Option");
    }
    Mon blog sur la 3d et la programation! de bien vouloir le visiter!

  2. #2
    Membre actif Avatar de DeusXL
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 300
    Points : 272
    Points
    272
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	virtual bool OnEvent(irr::SEvent event)
    	{
    		if(event.EventType == irr::EET_GUI_EVENT)
    		{
    			printf("EET_GUI_EVENT\n");
    			return true;
    		}
    		return true;
    	}
    Ici est le problème.
    Ton "return true;" signifie que tu as géré l'évènement donc Irrlicht ne le fera passer à personne.
    Comment corriger ça ? Remplace le deuxième "return true" (celui en rouge) par un "return false". En effet, si tu arrive là c'est que tu n'as absolument pas géré l'évènement

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Janvier 2004
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    Merci pour ta solution!
    Mon blog sur la 3d et la programation! de bien vouloir le visiter!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Irrlicht] Utiliser un mesh avec plusieurs textures
    Par demonixis dans le forum Irrlicht
    Réponses: 4
    Dernier message: 05/11/2009, 20h28
  2. [subversion/trac] Probl. de permission avec authz dans svnserve.conf
    Par mcdeffice dans le forum Administration système
    Réponses: 0
    Dernier message: 23/07/2009, 16h21
  3. probl avec swing, tuto pas tres clair
    Par Marc_3 dans le forum AWT/Swing
    Réponses: 13
    Dernier message: 24/03/2006, 15h51
  4. Probl avec décimales s/ base Access et D7
    Par bzh56 dans le forum Bases de données
    Réponses: 2
    Dernier message: 29/07/2005, 12h36
  5. Proble avec un vhosts sous Apache (Mandrake 10.1)
    Par __fabrice dans le forum Apache
    Réponses: 2
    Dernier message: 27/05/2005, 13h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo