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

Auteur Sujet: Passage Image=>Texture=>Sprite  (Lu 3349 fois)

0 Membres et 1 Invité sur ce sujet

Bl4ckb0ne

  • Newbie
  • *
  • Messages: 34
    • Voir le profil
Passage Image=>Texture=>Sprite
« le: Mars 05, 2013, 12:12:15 am »
Salut à tous.

Je bug sur une partie de fonction; je file le bout de code.

       
        ImageSprite.createMaskFromColor(sf::Color(0 ,255 , 0)); //création du masque de couleur
        sf::Texture TextureSprite; //chargement de l'image dans la texture
        TextureSprite.loadFromImage(ImageSprite); //chargement de l'image dans la texture
        sf::Sprite SpriteSprite(TextureSprite); //chargement de la texture dans un sprite
 

En gros, la fonction reçoit une sf::Image, lui colle un masque de couleur, l'Image est ensuite transformée en sf::Texture, puis en sf::Sprite, afin d'être découpée et collée dans un tableau.
Et l'ennui, c'est que je bug à la destruction de TextureSprite, une fois que SpriteSprite est déclarée et remplis avec la texture.

Et d'autre part, si quelqu'un à une idée pour fais moins compliqué, je suis preneur!

Merci d'avance.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Passage Image=>Texture=>Sprite
« Réponse #1 le: Mars 05, 2013, 08:35:24 am »
Citer
Et l'ennui, c'est que je bug à la destruction de TextureSprite
On a vu mieux comme description de problème ;)

Donc, c'est quoi le souci ? Tu as un problème pour faire quelque chose ? Tu as une erreur ? Un crash ?

Citer
Et d'autre part, si quelqu'un à une idée pour fais moins compliqué, je suis preneur!
C'est pas compliqué. Tu as besoin au final d'un sprite et d'une texture. Mais comme la texture ne peut pas être chargée telle quelle, tu passes préalablement par une image afin de modifier ses pixels. Difficile de faire plus simple que ces 4 lignes de code pour faire tout ça ;)
Laurent Gomila - SFML developer

Bl4ckb0ne

  • Newbie
  • *
  • Messages: 34
    • Voir le profil
Re : Passage Image=>Texture=>Sprite
« Réponse #2 le: Mars 05, 2013, 11:28:42 am »
J'ai un soucis avec la texture, devenue useless. J'aimerai la supprimer, mais j'ai jamais eu à faire avec les destructeurs, donc j'ai aucune idée de comment la supprimer.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Passage Image=>Texture=>Sprite
« Réponse #3 le: Mars 05, 2013, 11:31:41 am »
La texture n'est pas devenue inutile, puisqu'elle est affichée par le sprite. Si tu la vires tout ce que tu auras c'est un carré blanc.

Sinon pour répondre à ta question, détruire une texture se fait comme avec n'importe quel objet : lorsqu'elle arrive en fin de portée elle est détruite automatiquement.
Laurent Gomila - SFML developer

Bl4ckb0ne

  • Newbie
  • *
  • Messages: 34
    • Voir le profil
Re : Passage Image=>Texture=>Sprite
« Réponse #4 le: Mars 05, 2013, 10:45:55 pm »
Ok, c'est noté, merci.

Sinon, pour les versions futures, il sera possible de faire un masque de couleur sur un sprite ou une texture?
C'est un peu dommage de créer une image juste pour lui faire un masque de couleur et directement en faire une texture =/

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Passage Image=>Texture=>Sprite
« Réponse #5 le: Mars 05, 2013, 10:49:46 pm »
Pourquoi dommage ? C'est justement à ça que sert sf::Image, à manipuler les pixels avant de les charger dans un sf::Texture.

Il faut bien comprendre que les pixels de sf::Image se trouvent en mémoire système et peuvent être manipulés librement, alors que les pixels de sf::Texture sont stockés sur la carte graphique et peuvent difficilement être modifiés. Les choix de conception de SFML ne sont pas dûs au hasard, ils correspondent aux contraintes techniques sous-jacentes.
Laurent Gomila - SFML developer

Bl4ckb0ne

  • Newbie
  • *
  • Messages: 34
    • Voir le profil
Re : Passage Image=>Texture=>Sprite
« Réponse #6 le: Mars 06, 2013, 09:04:07 pm »
Ok! Tout deviens claire. Je trouvais l'image un peu useless, mais maintenant, je viens de comprendre son principe. Merci