Historique des modifications - Message

Message #3126

Sujet: prob menu


Type Date Auteur Contenu
Création du message 04-11-2007 09:37:44 bestben
Bonjours,
Voici mon problème,
Je voudrais faire un menu qui s'ouvre quand on presse une touche,
Mais le truc c'est que quand je presse ma touche dans le jeux une belle fenêtre windows (Envoyer, ne pas envoyer) s'affiche,
Donc je vois pas d'où peut provenir ce problème
Voici mon code :
main.cpp
#include "CEventReceiver.h"

using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
using namespace std;

int main(void)
{

    IrrlichtDevice* device = createDevice(video::EDT_OPENGL, core::dimension2d<s32>(1000, 700), 32,false,false,false);
      video::IVideoDriver* driver = device->getVideoDriver ();
    scene::ISceneManager* scenegraph = device->getSceneManager ();
    scene::ISceneManager* smgr = device->getSceneManager();
    irr::scene::ISceneManager *sceneManager = device->getSceneManager ();
    gui::IGUIEnvironment *gui = scenegraph->getGUIEnvironment();

.....

     gui::IGUIButton *btn_quit = gui->addButton(core::rect<s32>(20,50,120,70), 0, -1, L"Quit");
   gui::IGUIButton *btn_inv = gui->addButton(core::rect<s32>(20,70,120,90), 0, -1, L"Invetaire");


IGUIWindow* fen_inv = gui->addWindow(
        core::rect< s32 >(40,20,400,450),
		false,
		L"",
		0,
		-1
	);

    CIEventReceiver receiver2(fen_inv);
    device->setEventReceiver(&receiver2);

    while (device->run())
    {
        driver->beginScene(true,true,video::SColor(0,200,200,200));
        scenegraph->drawAll ();
        gui->drawAll();
        driver->endScene ();
         fen_inv->gui::IGUIElement::setVisible(false);
         receiver2.majInv();
      }

    device->drop ();
    return 0;
}

CEventReceiver.cpp
#include "CEventReceiver.h"
using namespace irr;
using namespace gui;

CIEventReceiver::CIEventReceiver(irr::gui::IGUIWindow* fen_inv)
{
    //On pointe le mesh passe en parametre.
    //Par defaut on ne bouge pas
    m_isVisible = false;

}



bool CIEventReceiver::OnEvent(const irr::SEvent &event2)
{
    if(fen_inv != 0
    && event2.EventType == irr::EET_KEY_INPUT_EVENT
    && event2.KeyInput.PressedDown == true
    && event2.KeyInput.Key == irr::KEY_KEY_I)
    {
        if(m_isVisible == false)
            m_isVisible = true;
        return true;
    }

    if(fen_inv != 0
    && event2.EventType == irr::EET_KEY_INPUT_EVENT
    && event2.KeyInput.PressedDown == false
    && event2.KeyInput.Key == irr::KEY_KEY_I)
    {
        //La touche est relachee, on arrete de bouger
        m_isVisible = false;
        return false;
    }
    return false;
}

void CIEventReceiver::majInv()
{
    //On verifie que le pointeur vers le mesh est
    //ok et que la touche est enfoncee
    if(fen_inv != 0 && m_isVisible == true)
    {
        fen_inv->irr::gui::IGUIElement::setVisible(true);
    }
}

CEventReceiver.h
#include <IRR/irrlicht.h>
#include <iostream>

class CIEventReceiver : public irr::IEventReceiver
{

public :

    CIEventReceiver(irr::gui::IGUIWindow* fen_inv);
    void majInv();


private :
bool OnEvent(const irr::SEvent &event2);

    irr::gui::IGUIWindow* fen_inv;
    bool m_isVisible;

};

Merci pour vos réponses

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
155 invités en ligne
membre en ligne: -
RSS Feed