#1 

12-03-2011 12:48:09

Kaze
Membres
Date d'inscription:
Messages: 60
IP: 86.194.157.171
Courriel

Bonjour à tous. C'est mon premier post donc je vais essayer de faire au mieux : je programme sur irrlicht depuis peu de temps et j'ai d'abord fait du C. Tout cela pour dire que j'ai essayé d'inclure une page en plus dans mon projet et il crée deux fenetres. Voiçi mes codes :

main.cpp :

#include <irrlicht.h>
#include "menu.h"

using namespace irr;

int main(void)
{
IrrlichtDevice* device = createDevice(video::EDT_OPENGL,core::dimension2d<u32>(1024,725), 32);
video::IVideoDriver* driver = device->getVideoDriver ();
scene::ISceneManager *sceneManager = device->getSceneManager ();
gui::IGUIEnvironment *gui = sceneManager->getGUIEnvironment();

int Jactif = 0, Oactif = 0, Qactif = 0;

// CHARGEMENT DE L'IMAGE DE FOND

video::ITexture *menuF = driver->getTexture ("menu/accueil/fond.png"); // chargement de la texture

core::position2d<s32> origine; // creation position origine
origine.X = 0;
origine.Y = 0;
core::position2d<s32> fin; // creation position fin
fin.X = 1024;
fin.Y = 725;
core::rect<s32> fenetre; // creation rectangle
fenetre.UpperLeftCorner = origine; // contenant l'image
fenetre.LowerRightCorner = fin;

// CHARGEMENT DES DIFFERENTS BOUTONS

video::ITexture *jouer = driver->getTexture ("menu/accueil/jouer.png");
video::ITexture *jouerPRESS = driver->getTexture ("menu/accueil/jouerPRESS.png");
video::ITexture *options = driver->getTexture ("menu/accueil/options.png");
video::ITexture *optionsPRESS = driver->getTexture ("menu/accueil/optionsPRESS.png");
video::ITexture *quitter = driver->getTexture ("menu/accueil/quitter.png");
video::ITexture *quitterPRESS = driver->getTexture ("menu/accueil/quitterPRESS.png");

gui::IGUIButton *jouerB = gui->addButton(core::rect<s32>(176,163,299,529),0, -1);
jouerB->setImage(jouer); jouerB->setPressedImage(jouerPRESS);
gui::IGUIButton *optionsB = gui->addButton(core::rect<s32>(574,409,695,725),0, -1);
optionsB->setImage(options); optionsB->setPressedImage(optionsPRESS);
gui::IGUIButton *quitterB = gui->addButton(core::rect<s32>(887,654,1024,725),0, -1);
quitterB->setImage(quitter); quitterB->setPressedImage(quitterPRESS);


while(device->run ()) // la boucle de rendu
{
driver->beginScene(true, true,video::SColor (0,120,120,120));
driver->draw2DImage(menuF,origine,fenetre,0,video::SColor (255,255,255,255),true);

if(jouerB->isPressed()){Jactif=1;} // Permet de montrer l'image jouerPRESS
if(!jouerB->isPressed() && Jactif==1){return 0;}

if(optionsB->isPressed()){Oactif=1;} // Permet de montrer l'image optionsPRESS
if(!optionsB->isPressed() && Oactif==1){optionsM();}

if(quitterB->isPressed()){Qactif=1;} // Permet de montrer l'image quitterPRESS
if(!quitterB->isPressed() && Qactif==1){return 0;}

gui->drawAll();
driver->endScene ();
}

device->drop ();
return 0;
}

menu.h :

#ifndef MENU_H
#define MENU_H

void optionsM();

#endif

options.cpp :

#include <irrlicht.h>
#include "menu.h"

using namespace irr;

void optionsM()
{
IrrlichtDevice* device = createDevice(video::EDT_OPENGL,core::dimension2d<u32>(1024,725), 32);
video::IVideoDriver* driver = device->getVideoDriver ();
scene::ISceneManager *sceneManager = device->getSceneManager ();
gui::IGUIEnvironment *gui = sceneManager->getGUIEnvironment();

// CHARGEMENT DE L'IMAGE DE FOND

video::ITexture *menuF = driver->getTexture ("menu/options/menu.png"); // chargement de la texture

core::position2d<s32> origine; // creation position origine
origine.X = 0;
origine.Y = 0;
core::position2d<s32> fin; // creation position fin
fin.X = 1024;
fin.Y = 725;
core::rect<s32> fenetre; // creation rectangle
fenetre.UpperLeftCorner = origine; // contenant l'image
fenetre.LowerRightCorner = fin;


while(device->run ()) // la boucle de rendu
{
driver->beginScene(true, true,video::SColor (0,120,120,120));
driver->draw2DImage(menuF,origine,fenetre,0,video::SColor (255,255,255,255),true);
gui->drawAll();
driver->endScene ();
}

device->drop ();
return 1;
}

Donc quand je lance le programme, il m'affiche une fenetre avec mes boutons et lorsque je clique sur le bouton optionsB, il crée une seconde fenetre. Est-il possible de faire afficher la page optionsM dans la première fenetre ?

Merci d'avance.


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