Bonjour à tous.
Je dessine un rectangle avec la fonction draw2DRectangle ensuite, j'écris du texte sur le rectangle mais on ne voit pas le texte parce que il est en dessous alors je voudrai savoir comment le mettre devant pour qu'on puisse le voir.
j'ai une idée en mettant le rectangle parent mais je crois pas que ça peut marcher car il ne sont pas membre de la même classe.
#include <iostream> #include <irr/irrlicht.h> using namespace std; using namespace irr; // namespace using namespace core; // namespace using namespace scene; // namespace using namespace video; // namespace using namespace io; // namespace using namespace gui; // namespace int main() { IrrlichtDevice *device = createDevice( video::EDT_SOFTWARE, dimension2d<s32>(1280, 1024), 32, true, false, false, 0); IVideoDriver* driver = device->getVideoDriver(); ISceneManager* smgr = device->getSceneManager(); IGUIEnvironment* env = device->getGUIEnvironment(); IGUISkin* skin = env->getSkin(); // Chargez font IGUIFont* font = env->getFont("media/fontlucida.png"); if (font) skin->setFont(font); skin->setFont(env->getBuiltInFont(), EGDF_TOOLTIP); //******************************************* gui::IGUIStaticText* nomArme; nomArme = device->getGUIEnvironment()->addStaticText(L"Je voudrais qu'on puisse le voir !", core::rect<s32>(0,0+750+67,300,25+750+67), true); nomArme->setOverrideColor(video::SColor(255,255,176,0)); //********************************************* while(device->run()) { driver->beginScene(true, true, SColor(255,100,101,140)); env->drawAll(); smgr->drawAll(); //Le rectange qui est devant le texte avec un peu de transparence // pour qu'on puisse se rendre compte du problème. driver->draw2DRectangle(video::SColor(200,180,0,0), core::rect<s32>(0, 0+750, 300, 200+750)); //********************************************* driver->endScene(); } //On libère la mémoire en détruisant le device device->drop (); }
Merci.
Hors ligne
C'est parce que tu ne fais pas les appels dans le bon ordre dans ta boucle principale. Tu dois d'abord apporter toutes les informations sur ta scène avant de la rendre. Là, tu dessines la scène, puis l'interface, et après, tu rajoutes un rectangle qui se retrouve donc devant le reste.
Ton code doit être comme ça
Hors ligne
Merci de ta réponse Perceval, c'est bien à cause de l'ordre des appels.
Hors ligne