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

Auteur Sujet: setPosition et setCenter ?  (Lu 2409 fois)

0 Membres et 1 Invité sur ce sujet

Lolilolight

  • Hero Member
  • *****
  • Messages: 1232
    • Voir le profil
setPosition et setCenter ?
« le: Août 05, 2013, 09:06:23 am »
Salut,
j'ai besoin de positionner la tile parfois à partir du coin supérieur gauche, et parfois à partir de son origine, j'ai donc fait une classe Tile qui contient une variable membres sprite et fait ceci :

void Tile::setPosition(Vec2f pos) {
    Entity::setPosition(Vec2f(pos.x, pos.y));
    sprite.setPosition(Vec2f(sprite.getPosition().x - this->getSize().x * 0.5f, sprite.getPosition().y - this->getSize().y * 0.5f));
}
void Tile::setCenter(Vec2f center) {
    Entity::setCenter(center);
    sprite.setPosition(Vector2f(center.x, center.y));
}
 

Donc je ne peux pas utiliser sf::transormable en interne vu que elle ne possède qu'une méthode pour positionner la tile à partir de son origine.
Dans mon cas c'est simple vu que l'origine c'est le centre de la tile. (Mais ça ne pourrait pas toujours être le cas.)

Serait il possible de rajouter une telle méthode qui positionne les entité à partir de leur coin supérieur gauche, ou bien, dois je utiliser la classe sf::Transform en interne ?

PS : par contre pour les get, pas de problème, vu que y'a getGlobalBounds.  :D
« Modifié: Août 05, 2013, 09:09:26 am par Lolilolight »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : setPosition et setCenter ?
« Réponse #1 le: Août 05, 2013, 09:23:32 am »
Citer
Serait il possible de rajouter une telle méthode qui positionne les entité à partir de leur coin supérieur gauche, ou bien, dois je utiliser la classe sf::Transform en interne ?
Là il va falloir que tu te débrouilles par toi-même ;)
Laurent Gomila - SFML developer

Lolilolight

  • Hero Member
  • *****
  • Messages: 1232
    • Voir le profil
Re : setPosition et setCenter ?
« Réponse #2 le: Août 05, 2013, 10:07:02 am »
Ok.

Lolilolight

  • Hero Member
  • *****
  • Messages: 1232
    • Voir le profil
Re : setPosition et setCenter ?
« Réponse #3 le: Août 26, 2013, 02:56:02 pm »
Bon finalement j'ai préféré faire hériter toutes mes entités (ombres, lumières, tiles, personnages, animations, etc...) de sf::Drawable et de ma classe Entité , utiliser un vertexarray plutôt que les classes haut niveau de la SFML et utiliser une transformation en interne car dans le cas des ombres par exemple, je dois les bouger si les tiles bouge, pareil pour les animations je dois appliquer la transformation à l'animation mais aussi à toutes les tiles de l'animation. (Donc ça revient à faire un SceneNode.)

Et puis je trouve cette manière de faire plus pratique. ^^ (Même si c'est de plus bas niveau.)

Je peux utiliser les fonctions des classes de la sfml sur toutes mes entités directement sans avoir besoin de savoir si c'est, une ombre ou bien alors, une lumière ou bien alors quoi que se soit et faire un cast.
Bref depuis la SFML 2.0 je ne peux plus faire de polymorphisme sur les entités de haut niveau de la SFML pou modifier la géométrie des entités  car sf::Drawable ne permet plus de modifier la géométrie des entités directement.
« Modifié: Août 26, 2013, 02:59:30 pm par Lolilolight »