Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Irrlicht] Problème d'affichage

Sujet résolu
    20 août 2007 à 12:37:04

    Ha oui en effet, ben sa m'étonne que je l'ai pas vue dans la doc...

    EDIt : Ah ben non j'ai de la merde dans les yeux c'est bien dans la doc :D
    • Partager sur Facebook
    • Partager sur Twitter
      20 août 2007 à 12:55:01

      on va mettre sa sur le compte des vacances d'accord ?^^
      • Partager sur Facebook
      • Partager sur Twitter
        20 août 2007 à 14:08:52

        Oui enfin elle son presque fini :p

        Sinon alors sa donne quoi les valeurs de position0, position1 et rectangle ?
        • Partager sur Facebook
        • Partager sur Twitter
          20 août 2007 à 19:05:54

          //On crée une position qui va représenter l'origine
          position2d<s32> position0;
          position0.X = 0;
          position0.Y = 0;
          //Et maintenant la position du coin bas droit du rectangle en se servant des dimensions de l'image
          position2d<s32> position1;
          position1.X = taille.Width;
          position1.Y = taille.Height;

          //On crée la variable rectangle
          rect<s32> rectangle;
          rectangle.UpperLeftCorner = position0;
          rectangle.LowerRightCorner = position1;

          c'est censé donner ça. J'ai essayé d'afficher les valeurs de position0 et de position1 mais ça n'a pas marché donc je peux pas te dire si ça renvoi bien ce qu'il faut.
          • Partager sur Facebook
          • Partager sur Twitter
            22 août 2007 à 1:45:10

            Arf là je vois pas trop d'où sa peut venir...

            Tu peut donner les sources actuel pour voir si il y à eu du changement, je vais les tester et te dire ce que sa done cher moi.
            • Partager sur Facebook
            • Partager sur Twitter
              22 août 2007 à 8:44:32

              afficherImage.cpp

              1. #include <irrlicht.h>
              2. #include <iostream>
              3. #include "afficherImage.hpp"
              4. using namespace irr;
              5. using namespace core;
              6. using namespace scene;
              7. using namespace video;
              8. using namespace io;
              9. using namespace gui;
              10. using namespace std;
              11. AfficherImage::AfficherImage(IVideoDriver *irrdriver)
              12. {
              13.    driver = irrdriver;
              14. }
              15. int AfficherImage::afficherMenu()
              16. {
              17.     interfaceMenu = driver->getTexture ("essai.jpg");
              18.     if (interfaceMenu == 0)
              19.     {
              20.         cout << "probleme de chargement de l'image" << endl;
              21.         return 1;
              22.     }
              23.     //La transparence pour le fond
              24.     driver->makeColorKeyTexture (interfaceMenu, video::SColor (0,255,0,255));
              25.     //On récupère les dimensions de l'image
              26.     dimension2d<s32> taille = interfaceMenu->getSize ();
              27.     //On crée une position qui va représenter l'origine
              28.     position2d<s32> position0;
              29.     position0.X = 0;
              30.     position0.Y = 0;
              31.     //Et maintenant la position du coin bas droit du rectangle en se servant des dimensions de l'image
              32.     position2d<s32> position1;
              33.     position1.X = taille.Width;
              34.     position1.Y = taille.Height;
              35.     //On crée la variable rectangle
              36.     rect<s32> rectangle;
              37.     rectangle.UpperLeftCorner = position0;
              38.     rectangle.LowerRightCorner = position1;
              39. }


              afficherImage.hpp

              1. #include <irrlicht.h>
              2. #include <iostream>
              3. #ifndef DEF_AFFICHER_IMAGE
              4. #define DEF_AFFICHER_IMAGE
              5. class AfficherImage
              6. {
              7.   public:
              8.     AfficherImage(irr::video::IVideoDriver* irrdriver);
              9.     ~AfficherImage();
              10.     int afficherMenu();
              11.     irr::core::position2d<irr::s32> get_position0()
              12.     {
              13.         return position0;
              14.     }
              15.     irr::core::position2d<irr::s32> get_position1()
              16.     {
              17.         return position1;
              18.     }
              19.     irr::core::rect<irr::s32> get_rectangle()
              20.     {
              21.         return rectangle;
              22.     }
              23.     irr::video::ITexture* get_interfaceMenu()
              24.     {
              25.         return interfaceMenu;
              26.     }
              27.     private:
              28.     irr::IrrlichtDevice *Device;
              29.     irr::video::IVideoDriver* driver;
              30.     irr::video::ITexture *interfaceMenu;
              31.     irr::core::position2d<irr::s32> position0;
              32.     irr::core::position2d<irr::s32> position1;
              33.     irr::core::rect<irr::s32> rectangle;
              34. };


              main.cpp

              1. #include <irrlicht.h>
              2. #include <iostream>
              3. #include "main.hpp"
              4. using namespace irr;
              5. using namespace core;
              6. using namespace scene;
              7. using namespace video;
              8. using namespace io;
              9. using namespace gui;
              10. using namespace std;
              11. #pragma comment(lib, "Irrlicht.lib")
              12. int main()
              13. {
              14.         IrrlichtDevice *Device = createDevice(EDT_OPENGL, dimension2d<s32>(800, 600), 16,
              15.                         false, false, false, 0);
              16.     if (Device == 0)
              17.     return 1; // could not create selected driver.
              18.         Device->setWindowCaption(L"Equilibrum : La malediction");
              19.     IVideoDriver* driver = Device->getVideoDriver();
              20.     ISceneManager* smgr = Device->getSceneManager();
              21.     IGUIEnvironment* guienv = Device->getGUIEnvironment();
              22.     afficherImage = new AfficherImage(driver);
              23.     afficherImage->afficherMenu();
              24.     Device->setResizeAble(true);
              25.     while(Device->run() && driver)
              26.     {
              27.         u32 time = Device->getTimer()->getTime();
              28.         driver->beginScene(true, true, SColor(0,0,0,0));
              29.         driver->draw2DImage(afficherImage->get_interfaceMenu(),
              30.                             afficherImage->get_position0(),
              31.                             afficherImage->get_rectangle(), 0,
              32.                             SColor (255,255,255,255), true);
              33.         //pour afficher les positions du curseur dans la barre de titre :
              34.         core::position2d<s32> mouse = Device->getCursorControl()->getPosition();
              35.         //pour afficher les positions du curseur dans la barre de titre :
              36.         core::stringw titre = L"Positions de la souris :";
              37.         titre += mouse.X;
              38.         titre += L"-";
              39.         titre += mouse.Y;
              40.         Device->setWindowCaption(titre.c_str());
              41.         smgr->drawAll();
              42.         guienv->drawAll();
              43.         driver->endScene();
              44.         }
              45.     Device->drop();
              46.     return 0;
              47. }


              main.hpp

              1. #include <irrlicht.h>
              2. #include <iostream>
              3. #include "afficherImage.hpp"
              4. AfficherImage* afficherImage;
              • Partager sur Facebook
              • Partager sur Twitter
                22 août 2007 à 13:03:30

                Arf je t'avais dis de ne pas recrer position0 position1 et rectangle dans afficherMenu !
                Il faut utiliser les attributs de l'objet et ne pas les recréer.
                • Partager sur Facebook
                • Partager sur Twitter
                  22 août 2007 à 13:33:43

                  je sais mais j'ai pas compris comment faire ça.
                  Je dois avouer que je suis loin de maitriser et le C++ et irrlicht. Avec sa je vais pas aller très loin mais je tente quand même
                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 août 2007 à 14:37:05

                    Mais pourtant c'est tout con ^^

                    Remplace juste
                    1. //On crée une position qui va représenter l'origine
                    2.     position2d<s32> position0;
                    3.     position0.X = 0;
                    4.     position0.Y = 0;
                    5.     //Et maintenant la position du coin bas droit du rectangle en se servant des dimensions de l'image
                    6.     position2d<s32> position1;
                    7.     position1.X = taille.Width;
                    8.     position1.Y = taille.Height;
                    9.     //On crée la variable rectangle
                    10.     rect<s32> rectangle;
                    11.     rectangle.UpperLeftCorner = position0;
                    12.     rectangle.LowerRightCorner = position1;


                    Par

                    1. //On crée une position qui va représenter l'origine
                    2.     position0.X = 0;
                    3.     position0.Y = 0;
                    4.     //Et maintenant la position du coin bas droit du rectangle en se servant des dimensions de l'image
                    5.     position1.X = taille.Width;
                    6.     position1.Y = taille.Height;
                    7.     //On crée la variable rectangle
                    8.     rectangle.UpperLeftCorner = position0;
                    9.     rectangle.LowerRightCorner = position1;
                    • Partager sur Facebook
                    • Partager sur Twitter
                      22 août 2007 à 16:28:48

                      qu'est ce que je suis ***
                      va falloir que je connecte mon cerveau sinon je vais pas aller loin
                      en tout cas merci beaucoup grace a toi mon programme marche
                      • Partager sur Facebook
                      • Partager sur Twitter
                        23 août 2007 à 2:44:54

                        La connection semble être une bonne solutions :-°

                        N'empêche 2 pages pour un sujet aussi simple on est doués ^^
                        • Partager sur Facebook
                        • Partager sur Twitter

                        [Irrlicht] Problème d'affichage

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown