Historique des modifications - Message

Message #5427

Sujet: Question sur mon attribut qui ne veut pas varier?


Type Date Auteur Contenu
Dernière modification 03-01-2009 16:39:23 endering
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 !
Création du message 03-01-2009 16:24:54 endering
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 !

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