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

Auteur Sujet: [Résolu] Problème application de sf::Transform sur VertexArray  (Lu 2045 fois)

0 Membres et 1 Invité sur ce sujet

Cmdu76

  • Full Member
  • ***
  • Messages: 194
    • Voir le profil
[Résolu] Problème application de sf::Transform sur VertexArray
« le: Septembre 23, 2014, 11:32:28 pm »
Bonjour,

Je travaille sur une TileMap qui peut être (ou pas) isométrique.
Ma classe TileMap hérite de Drawable et Transformable.

Mes Tiles sont de parfaits carrés (à la base), j'essaye donc de les modifier pour les afficher en isométrique (2.5D)

-> rotate(45)
-> scale(1,0.5)

(Je ne veux pas affecter ma vue, juste le rendu du VertexArray)

Voici sans plus tarder, ma fonction draw :
void TileMap::draw(sf::RenderTarget& target, sf::RenderStates states) const
{
    if(mTexture != nullptr) // mTexture est du type : std::shared_ptr<sf::Texture>
        states.texture = &(*mTexture);
    if(mIsometric) // mIsometric est un booleen qui indique si le VertexArray est isométrique ou non
    {
        sf::Transform t0, t1, t2;
        t0.translate(200,50); // Juste pour le rendu sur ma screenshot qui vient
        t1.rotate(45); // Première transformation
        t2.scale(sf::Vector2f(1,0.5)); // Deuxième

        states.transform *= getTransform() * t0 * t1 * t2;
    }
    else // Si le VertexArray n'est pas isométrique
    {
        states.transform *= getTransform();
    }

    target.draw(mBackground,states);
}

Vous le verrez dans le code précèdent ou dans la screenshot suivante, mon rendu n'est pas celui escompté.
Mon VertexArray est tourné et rétréci en même temps, ce qu'il fait que je me retrouve avec des rectangles inclinés et non des losanges comme je les voulais...

Voici la fameuse scrennshot en pièce jointe

Merci d'avance :)
« Modifié: Septembre 24, 2014, 04:40:06 pm par Cmdu76 »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème application de sf::Transform sur VertexArray
« Réponse #1 le: Septembre 24, 2014, 08:06:50 am »
Essaye d'inverser l'ordre des transformations.
Laurent Gomila - SFML developer

Cmdu76

  • Full Member
  • ***
  • Messages: 194
    • Voir le profil
Re : Problème application de sf::Transform sur VertexArray
« Réponse #2 le: Septembre 24, 2014, 04:39:49 pm »
Merci, ça marche maintenant, sujet résolu :)

 

anything