Pages: 1
- Accueil forums
- » C++
- » Question sur mon attribut qui ne veut pas varier?
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;
};
#endifgame.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
03-01-2009 16:45:06
- Magun
- Administrateurs

- 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 ![]()
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 ![]()
Hors ligne
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 ![]()
" N´essaye pas. Fait le, ou ne le fait pas. Il n´y a pas d´essai." - Yoda
Hors ligne
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 ![]()
" N´essaye pas. Fait le, ou ne le fait pas. Il n´y a pas d´essai." - Yoda
Hors ligne



