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

Auteur Sujet: Problème du carré blanc  (Lu 2750 fois)

0 Membres et 1 Invité sur ce sujet

CptGervais

  • Newbie
  • *
  • Messages: 12
    • Voir le profil
    • E-mail
Problème du carré blanc
« le: Août 02, 2013, 09:28:08 pm »
CObjet::CObjet()
{
    if(!ImageBMP.loadFromFile("ressources/Images.bmp"))
    {
            ImageBMP.createMaskFromColor(Color(0,128,0));
    }
if(!texture.loadFromImage(ImageBMP))
                cout << "Erreur lors du chargement de la texture \n";

            spriteK[10][10].setTexture(texture);
            spriteK[10][10].setTextureRect(IntRect(0, 0, 65 , 65));
}

Sprite CObjet::getSprite()
{
    return spriteK[10][10];
}

class CObjet
{
    private:
    Sprite spriteK[10][10];
    Texture texture;
    Image ImageBMP;

    public:
    CObjet();
    ~CObjet();
    Sprite getSprite();
};

int main()
{
    RenderWindow window(sf::VideoMode(800, 600), "SFML works!");
    window.setFramerateLimit(40);

    CObjet objet1;

    while (window.isOpen())
    {
        window.clear();
        window.draw(objet1.getSprite());
        window.display();
    }

    return 0;
}
 
Le résultat est dans le titre, j'ai tester plusieurs valeurs pour l et c, toujours le carré blanc. Mais je ne comprends pas pourquoi  la Texture est détruite alors qu'elle est instanciée.
PS:Je n'ai pas mis les includes pour épurer
« Modifié: Août 02, 2013, 10:37:36 pm par CptGervais »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème du carré blanc
« Réponse #1 le: Août 02, 2013, 09:59:57 pm »
Simplifie ton code, là il y a trop de trucs superflus sans rapport avec l'erreur.
Laurent Gomila - SFML developer

CptGervais

  • Newbie
  • *
  • Messages: 12
    • Voir le profil
    • E-mail
Re : Problème du carré blanc
« Réponse #2 le: Août 02, 2013, 10:23:01 pm »
Fait. Apparemment le problème viendrait du fait que j'utilise un tableau de Sprite, sinon ça marche.
« Modifié: Août 02, 2013, 10:38:29 pm par CptGervais »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème du carré blanc
« Réponse #3 le: Août 02, 2013, 10:45:41 pm »
Citer
Sprite CObjet::getSprite()
{
    return spriteK[10][10];
}

Là tu renvoies le sprite n° [10][10], qui n'existe bien entendu pas puisque le dernier élement de ton tableau est [9][9].
Laurent Gomila - SFML developer

CptGervais

  • Newbie
  • *
  • Messages: 12
    • Voir le profil
    • E-mail
Re : Problème du carré blanc
« Réponse #4 le: Août 02, 2013, 11:04:24 pm »
Belle erreur de ma part, désolé. En changeant ce détail ça marche en effet. Mais le code d'origine plante toujours, j'ai du mal isoler la partie qui ne va pas. Le carré blanc me faisait penser à la durée de vie des textures mais c'est peut être pas ça...

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème du carré blanc
« Réponse #5 le: Août 02, 2013, 11:07:10 pm »
Même erreur là :

            spriteK[10][10].setTexture(texture);
            spriteK[10][10].setTextureRect(IntRect(0, 0, 65 , 65));
Laurent Gomila - SFML developer

CptGervais

  • Newbie
  • *
  • Messages: 12
    • Voir le profil
    • E-mail
Re : Problème du carré blanc
« Réponse #6 le: Août 03, 2013, 11:45:16 am »
C'est bon, mon code fonctionne mais je n'ai pas vraiment compris pourquoi. L'orignal étant beaucoup plus complexe, y a un truc qui devait faire foirer le reste. Merci quand même !