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

Auteur Sujet: texture non appliquée  (Lu 2104 fois)

0 Membres et 1 Invité sur ce sujet

Sozary

  • Newbie
  • *
  • Messages: 28
    • Voir le profil
    • E-mail
texture non appliquée
« le: Mai 27, 2016, 01:18:15 pm »
Bonjour,
J'ai une classe Ball et je voudrais appliquer une structure sur cette boule.
Je procède ainsi:
Texture chat;
        chat.loadFromFile("chat.jpg");

        for (int i = 0; i < NB_BALL; ++i)
                m_balls.push_back(Ball(chat)); 
 

et j'ai

Ball::Ball(double size, Color color, Vector2f pos,Texture txt)
{
        m_texture = txt;
        m_ball.setTexture(&m_texture);

        m_ball.setRadius(size);
        m_ball.setFillColor(color);
        m_ball.setPosition(pos);
        m_ball.setOrigin(size , size );

               
}

class Ball : public sf::Drawable
{
public:
        Ball();
        Ball(double size, sf::Color color, sf::Vector2f pos,sf::Texture);
        ~Ball();
        void setBallSize(double size);
        void setColor(sf::Color color);
        void setPos(sf::Vector2f pos);
        sf::Vector2f getPos() const;
private:
        sf::CircleShape m_ball;
        sf::Texture m_texture;
private:
        virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const;
};
 

Or ça ne fonctionne pas...
Merci d'avance

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : texture non appliquée
« Réponse #1 le: Mai 27, 2016, 01:21:48 pm »
Tu fais plein de copies temporaires de tes textures. Au final le sprite pointe non pas vers celle qui va rester, mais sur l'une de ces copies temporaire qui n'existe déjà plus.
Laurent Gomila - SFML developer

Sozary

  • Newbie
  • *
  • Messages: 28
    • Voir le profil
    • E-mail
Re : texture non appliquée
« Réponse #2 le: Mai 27, 2016, 07:23:22 pm »
Exact oui! Du coup ou dois je déclarer mes textures?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : texture non appliquée
« Réponse #3 le: Mai 27, 2016, 08:37:58 pm »
Ce qui est sûr c'est que chaque balle ne va pas avoir sa propre copie de la même texture. Ce serait du gaspillage. Donc quelqu'un d'autre doit créer et stocker la texture de balle, et leur fournir sous forme de réference pour éviter les copies.
Laurent Gomila - SFML developer