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

Auteur Sujet: Carré blanc avec sf::Texture en tant que membre  (Lu 1797 fois)

0 Membres et 1 Invité sur ce sujet

AnselmeSfml

  • Jr. Member
  • **
  • Messages: 78
    • Voir le profil
    • E-mail
Carré blanc avec sf::Texture en tant que membre
« le: Août 24, 2014, 06:28:05 pm »
Bonjour!

Aujourd'hui je vais en agacer certains en posant une question que beaucoup d'autres ont déjà posés. Seulement, après plusieurs forums visités, je n'ai toujours pas repéré d'ou provenait mon erreur.
Voilà mon problème: j'ai une classe Tile qui à deux attributs: m_texture et m_shadowTexture. Elle possède deux méthodes qui retournent les deux derniers attributs cités. Seulement, quand je veux l'utiliser avec sprite.setTexture(tile.getTexture()), j'obtiens un carré blanc. Voici mon code:

TILE.H
#ifndef TILE_H
#define TILE_H
#include<SFML/Graphics.hpp>
#include <iostream>
class Tile
{
    public:
        Tile();
        void setTexture(std::string path);
        void setShadowTexture(std::string path);
        sf::Texture getTexture() const;
        sf::Texture getShadowTexture() const;
    private:
    sf::Texture m_texture, m_shadowTexture;

};

#endif // TILE_H
 
TILE.CPP
#include "Tile.h"
using namespace sf;

Tile::Tile() : m_texture(), m_shadowTexture()
{}
void Tile::setTexture(std::string path)
{
    m_texture.loadFromFile(path);
}
void Tile::setShadowTexture(std::string path)
{
    m_shadowTexture.loadFromFile(path);
}
Texture Tile::getTexture() const
{
    return m_texture;
}
Texture Tile::getShadowTexture() const
{
    return m_shadowTexture;
}

 
et là une partie du code que j'utilise pour afficher le tout:
sprite.setTexture(m_tileList[m_configuration[z][y][x]].getTexture());
 
Merci d'avance à ceux qui pourront m'éclairer.
« Modifié: Août 24, 2014, 06:30:38 pm par AnselmeSfml »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Carré blanc avec sf::Texture en tant que membre
« Réponse #1 le: Août 24, 2014, 06:48:44 pm »
Ne copie pas les textures quand tu les renvoies :

        const sf::Texture& getTexture() const;
        const sf::Texture& getShadowTexture() const;
Laurent Gomila - SFML developer

AnselmeSfml

  • Jr. Member
  • **
  • Messages: 78
    • Voir le profil
    • E-mail
Re : Carré blanc avec sf::Texture en tant que membre
« Réponse #2 le: Août 24, 2014, 06:59:32 pm »
Merci beaucoup!

C'était donc à ce niveau là que ça coinçait!

G.

  • Hero Member
  • *****
  • Messages: 1593
    • Voir le profil
Re : Carré blanc avec sf::Texture en tant que membre
« Réponse #3 le: Août 25, 2014, 02:39:32 am »
C'est pas relatif à ton problème, mais tu veux vraiment une texture par tile ? N'oublie pas que plusieurs sprites peuvent utiliser une seule et même texture, donc pas la peine de charger x fois la même. ;)