Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: charger des textures en "masse"  (Lu 1372 fois)

0 Membres et 1 Invité sur ce sujet

mazertys17

  • Full Member
  • ***
  • Messages: 123
    • Voir le profil
    • E-mail
charger des textures en "masse"
« le: Novembre 11, 2014, 03:15:11 pm »
Bonjour.

J'ai besoin d'utiliser des tableaux de pointeurs sf::Texture dans le but de charger des textures en "masses" dans mes entités (quand je dit masse, c'est exagéré, mais le but est là), seulement, ca ne marche pas.
J'ai essayé avec des tableaux en dur:

    sf::Texture *textureTest1[10];

    textureTest[1] = new sf::Texture;
    textureTest[1]->loadFromFile("images/niveaux/niveau1/niveau1Image1.png");
 
(sans doute ce code n'est pas net)

j'ai essayé en vector:

//dans ma class
sf::Texture m_textureFondModel;
vector <sf::Texture*> m_vectorTexture;


//dans ma fonction afficher
m_textureFondModel1.loadFromFile("images/niveaux/niveau1/niveau1Image1.png");
m_vectorTexture.push_back(&m_textureFondModel1);

 

ou encore


//dans ma class
sf::Texture m_textureFondModel;
vector <sf::Texture> *m_vectorTextureFond;


//dans ma fonction charger
m_textureFondModel.loadFromFile("images/niveaux/niveau1/niveau1Image1.png");
m_vectorTextureFond->push_back(&m_textureFondModel);
m_textureFondModel.loadFromFile("images/niveaux/niveau1/niveau1Image2.png");
m_vectorTextureFond->push_back(&m_textureFondModel);
 

et encore d'autres test en mettant la texture modèle en pointeur etc...

Je les mets dans tableau d'entité *EntiteImages m_ptrEntiteImage[10]:


vector<sf::Texture*>::iterator it = m_vectorTextureFond.begin()+compteurTailleFond;//ou pointeur
                                                                                                                                          //inversé

    m_PtrEntiteImageFond[compteurTailleFond] = new EntiteImage;

    m_PtrEntiteImageFond[compteurTailleFond]->recoiVertexEtTexture(fondVertex,*it);
    m_PtrEntiteImageFond[compteurTailleFond]->recoiZorder(0);
    it++;
    compteurTailleFond++;

 



Quand j'envoie a l'affichage cette partie (en fait, le fond):

 ...
 if(m_compteurEntiteImage <= m_nombreDimageDeFond)
            return m_PtrEntiteImageFond[m_compteurEntiteImage];
 ...
m_compteurEntiteImage++;

 

ca m'affiche a peine quelques millisecondes (probablement le temps du chargement, puis écran noire (pour le fond uniquement, le reste fonctionne bien)...




ps: trop tard pour le codage en anglais,  ;)
et pour être honnête, je suis plutôt fier de coder en Français (même si je fais de fautes d'orthographes) ;D

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : charger des textures en "masse"
« Réponse #1 le: Novembre 11, 2014, 04:28:37 pm »
Toujours pas décidé à essayer d'apprendre quoique ce soit ? Tu peux galérer autant que tu veux, ça c'est ton affaire, mais à un moment donné je serai obligé d'arrêter ce flot incessant de posts de ta part sur le forum. Ce serait bien qu'on n'en arrive pas là ;)

En attendant je bloque cette discussion car il ne faut pas oublier que c'est un forum concernant SFML et que toutes tes questions concernent le C++.
Laurent Gomila - SFML developer