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

Auteur Sujet: RenderTexture et MaskColor...  (Lu 3971 fois)

0 Membres et 1 Invité sur ce sujet

Cmdu76

  • Full Member
  • ***
  • Messages: 194
    • Voir le profil
RenderTexture et MaskColor...
« le: Février 18, 2013, 08:05:15 pm »
Bonjour j'utilise les RenderTextures pour mon TileMapping, et j'ai actuellement un problème ...

J'essaye de placer une branche d'arbre, elle ne prends donc pas toute la tile et j'utilise un masque de couleur (que j'ai mis en rose (255, 0, 200)) mais quand je dessine le sprite sur la texture, le masque de couleur n'est pas pris en compte et on a un carré rose et ma branche dessus ...

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : RenderTexture et MaskColor...
« Réponse #1 le: Février 18, 2013, 08:13:39 pm »
Il faudrait que tu uploades l'image en question, et que tu nous montres le code qui la charge et la dessine.

Mais bon sinon, prend n'importe quel éditeur d'image, et remplace ton rose par un vrai canal alpha.
Laurent Gomila - SFML developer

Cmdu76

  • Full Member
  • ***
  • Messages: 194
    • Voir le profil
Re : RenderTexture et MaskColor...
« Réponse #2 le: Février 18, 2013, 08:45:59 pm »
Code qui charge l'image :
    sf::Image tilesetI;
    sf::Texture tilesetT;
    sf::Sprite tile;
    tilesetI.loadFromFile("doc/tileset.bmp");
    tilesetI.createMaskFromColor(sf::Color(255,0,220),0);
    tilesetT.loadFromImage(tilesetI);
    tile.setTexture(tilesetT);

Code qui la dessine :
    tile.setTextureRect(sf::IntRect(posTileX, posTileY, 64, 64));
    tile.setScale(0.5, 0.5);
    tile.setPosition(coloneActuelle*32, ligneActuelle*32);
    texture.draw(tile);

Cmdu76

  • Full Member
  • ***
  • Messages: 194
    • Voir le profil
Re : RenderTexture et MaskColor...
« Réponse #3 le: Février 18, 2013, 08:47:39 pm »
Excusez moi encore une fois, je suis trop stupide, mon image était de 255 à la place de 220.... (pour les bleus)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : RenderTexture et MaskColor...
« Réponse #4 le: Février 18, 2013, 08:48:39 pm »
Non mais sérieusement, on se dirait revenu dans les années 90 là ;)

Utilise le format PNG (plus personne n'utilise du BMP), et met directement un canal alpha au lieu d'un fond rose.
Laurent Gomila - SFML developer

Cmdu76

  • Full Member
  • ***
  • Messages: 194
    • Voir le profil
Re : RenderTexture et MaskColor...
« Réponse #5 le: Février 18, 2013, 09:55:12 pm »
Un autre problème (mais je recrée pas un nouveau sujet pour pas polluer)

J'aimerais inverser une sprite... Mais sans rotation, voici mon problème mais en image :

 

[attachment deleted by admin]

Cmdu76

  • Full Member
  • ***
  • Messages: 194
    • Voir le profil
Re : RenderTexture et MaskColor...
« Réponse #6 le: Février 18, 2013, 09:56:08 pm »
Je cherche juste la fonction, ou le bout de code qui me permettrait de l'inverser...

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : RenderTexture et MaskColor...
« Réponse #7 le: Février 18, 2013, 11:08:58 pm »
Citer
Un autre problème (mais je recrée pas un nouveau sujet pour pas polluer)
Créer un nouveau sujet aurait au contraire aidé à mieux catégoriser ton message, et à le retrouver plus facilement par la suite. Là le résultat c'est juste un mélange de choses qui n'ont rien à voir dans la même discussion, donc tout le contraire de l'effet escompté. J'ai jamais compris pourquoi les gens pensent "nouveau sujet = pollution".

Citer
J'aimerais inverser une sprite... Mais sans rotation
Tu veux faire une symétrie ? Tu as deux solutions (dans l'ordre de préférence) :
- setTextureRect avec une hauteur ou largeur négative
- setScale avec -1 en X ou en Y

Citer
Je cherche juste la fonction, ou le bout de code qui me permettrait de l'inverser...
Un nouveau message dans la foulée, et en plus pour ne rien dire, ça par contre c'est de la pollution ;)
Laurent Gomila - SFML developer

Cmdu76

  • Full Member
  • ***
  • Messages: 194
    • Voir le profil
Re : RenderTexture et MaskColor...
« Réponse #8 le: Février 18, 2013, 11:32:36 pm »
Désolé pour les pollutions que j'ai pu commettre précèdement, et merci beaucoup, j'essaye ce code de suite ;)

Orwel

  • Full Member
  • ***
  • Messages: 208
    • Voir le profil
Re : RenderTexture et MaskColor...
« Réponse #9 le: Février 20, 2013, 11:38:08 am »
Citer
J'ai jamais compris pourquoi les gens pensent "nouveau sujet = pollution".
La pollution vient de la duplication de sujet, créer depuis la fonctionnalité "New Post". Après, il s'agit d'une stigmatisation un peu excesive.

Pour vraiment éviter de polluer un forum, utilise la fonction "rechercher", car ces questions ont été posées de multiple fois (notamment par moi aussi).

J'ai voulu mettre un lien vers la faq de bonne conduite du forum, mais je ne l'ai pas trouvé....

Citer
Tu veux faire une symétrie ? Tu as deux solutions (dans l'ordre de préférence) :
- setTextureRect avec une hauteur ou largeur négative
- setScale avec -1 en X ou en Y

Ce qui diffère de l'ordre de facilité. Pourquoi cette préférence???

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : RenderTexture et MaskColor...
« Réponse #10 le: Février 20, 2013, 12:28:06 pm »
Citer
La pollution vient de la duplication de sujet
Il n'y a pas de duplication, puisque c'est un tout nouveau problème. Si c'était quelqu'un d'autre qui était venu poser cette question, il l'aurait fait dans un nouveau sujet, pas ici dans un sujet qui n'a rien à voir.

Citer
J'ai voulu mettre un lien vers la faq de bonne conduite du forum, mais je ne l'ai pas trouvé....
Il n'y en a pas, juste le bon sens ;)

Citer
Ce qui diffère de l'ordre de facilité. Pourquoi cette préférence???
Parce qu'un scale négatif a des effets de bord : ce n'est pas uniquement la texture de l'entité qui se retourne, c'est l'entité elle-même qui se retourne (donc elle n'est plus dessinée au même endroit). Et puis après retournement, son repère local est inversé, du coup les transformations sont également impactées.
L'autre solution n'a au contraire que l'effet escompté.
Laurent Gomila - SFML developer