#0 

03-01-2009 17:24:54

endering
Membre
Date d'inscription: 20-11-2008
Messages: 35

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

Code:

#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

Code:

#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 !

Dernière modification par endering (03-01-2009 17:39:23)


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

Hors ligne


#1 

03-01-2009 17:45:06

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 910
Corrections: 2
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


#2 

03-01-2009 20:12:26

endering
Membre
Date d'inscription: 20-11-2008
Messages: 35

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


#3 

03-01-2009 20:23:19

endering
Membre
Date d'inscription: 20-11-2008
Messages: 35

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

Dernière modification par endering (03-01-2009 20:53:03)


" 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é
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
95 invités en ligne
Aucun membre connecté
RSS Feed