#1 

03-01-2009 16:24:54

endering
Membres
Date d'inscription:
Messages: 35
IP: 193.248.206.93
Courriel

Voilà j'ai l'impression que je vais poster une question bête mais j'ai un problème :
game.h

#include <IRR/irrlicht.h>
#include "scenes.h"

#ifndef DEF_ENUM_SCENES
#define DEF_ENUM_SCENES
enum Scene
{
    INTRO, MENU, GAME, OPTIONS, SCORES
};
#endif

#ifndef DEF_ENUM_BOUTON
#define DEF_ENUM_BOUTON
enum Bouton
{
    JOUER, QUITTER
};
#endif

#ifndef DEF_GAME
#define DEF_GAME
class CGame
{
public :

    CGame();
    CGame(long *largeurEcran, long *hauteurEcran);

    void scene(int *sceneActuelle, irr::IrrlichtDevice *device, irr::video::IVideoDriver* driver,
    irr::scene::ISceneManager* smgr, irr::gui::IGUIEnvironment* gui);//Charge la scene actuelle.

    void updateEtat(int *bouton, int etat);

    ~CGame();

protected :

    long m_hauteurEcran, m_largeurEcran;

    int m_etatJouer, m_etatQuitter;

    CScenes *m_scene;//Gère le chargement des scenes.
    irr::core::stringw m_sceneTitre;

};
#endif

game.cpp
#include "game.h"
#include <iostream>

using namespace irr;
using namespace video;
using namespace scene;
using namespace gui;

CGame::CGame()
{
}

CGame::CGame(long *largeurEcran, long *hauteurEcran)
{
    m_scene = new CScenes(largeurEcran, hauteurEcran);
    m_etatJouer = 0;
    m_etatQuitter = 0;
}

CGame::~CGame()
{
    delete m_scene;
}

void CGame::scene(int *sceneActuelle, IrrlichtDevice *device, IVideoDriver* driver,
ISceneManager* smgr, IGUIEnvironment* gui)
{
    if(*sceneActuelle == INTRO)
    {
        m_scene->loadMenu(device, driver, gui);
        *sceneActuelle = MENU;//A la fin de l'intro, on passe au menu.
    }
    else if(*sceneActuelle == MENU)
    {
        m_scene->updateMenu(device, driver, gui, &m_etatJouer, &m_etatQuitter);
    }
    else if(*sceneActuelle == GAME)
    {
    }
    else if(*sceneActuelle == OPTIONS)
    {
    }
    else if(*sceneActuelle == SCORES)
    {
    }
}

void CGame::updateEtat(int *bouton, int etat)
{
    if(*bouton == JOUER)
    {
        m_etatJouer = etat;
    }
    else if(*bouton == QUITTER)
    {
        m_etatQuitter = etat;
    }
}

j'appel updateEtat lorsque la souris passe sur mon bouton (gui image) quitter. A ce moment etat vaut 2 et m_etatQuitter vaut bien 2 aussi.
Mais lorsque j'appel la fonction updateMenu (à chaque boucle) m_etatQuitter vaut toujours 0 mais il n'est pourtant jamais réinitialisé...

EDIT : bonne années à tous quand même !


" N´essaye pas. Fait le, ou ne le fait pas. Il n´y a pas d´essai." - Yoda

Hors ligne


#2 

03-01-2009 16:45:06

Magun
Administrateurs
Avatar de Magun
Date d'inscription:
Messages: 910
IP: 78.115.112.153
Courriel  Site web

je nutilise que rarement les enumeration donc ses peut etre faut mais il me semble que sa s'ecris plus comme sa wink

enum Bouton
{
JOUER = 1,
QUITTER
};

le compilateur se charge d'attribuer +1 a chaque déclaration donc QUITTER vaut 2, enfin je dit sa ....... jais du les utiliser 3 fois en 2ans hmm

Hors ligne


#3 

03-01-2009 19:12:26

endering
Membres
Date d'inscription:
Messages: 35
IP: 193.248.204.199
Courriel

J'ai quand même essayer, mais ce n'est pas ça et je crois que la valeur n'a pas vraiment d'importance du moment qu'elle est la même partout.
C'est quand même bizarre hmm


" N´essaye pas. Fait le, ou ne le fait pas. Il n´y a pas d´essai." - Yoda

Hors ligne


#4 

03-01-2009 19:23:19

endering
Membres
Date d'inscription:
Messages: 35
IP: 193.248.204.199
Courriel

Mwarf, je crois que j'ai trouvé : dans ma classe eventReceiver, je recréer une classe game ...
EDIT : résolue en récupérant un pointeur de ma classe game dans le constructeur de eventReceiver smile


" N´essaye pas. Fait le, ou ne le fait pas. Il n´y a pas d´essai." - Yoda

Hors ligne


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
167 invités en ligne
membre en ligne: -
RSS Feed