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

Auteur Sujet: [Résolu]Petite question, RenderWindow::convertCoords  (Lu 2268 fois)

0 Membres et 1 Invité sur ce sujet

roket

  • Newbie
  • *
  • Messages: 25
    • Voir le profil
[Résolu]Petite question, RenderWindow::convertCoords
« le: Novembre 07, 2012, 03:08:39 pm »
Bonjour, je voulais demander pourquoi la fonction :
Vector2f        convertCoords (const Vector2i &point) const
Prend elle en argument un Vector2<int> (pour renvoyer un Vector2<float>) alors que Sprite::getPosition renvoie un Vector2f, ce qui n'est pas du tout pratique et oblige un cast ou une copie.
« Modifié: Novembre 07, 2012, 04:41:31 pm par roket »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Petite question de cohérence, RenderWindow::convertCoords
« Réponse #1 le: Novembre 07, 2012, 03:55:35 pm »
Si tu demande ça c'est que tu n'as pas compris la fonction.

Elle prend en paramètre des pixels, donc des Vector2i. La position d'un sprite n'est pas ce que tu es censé passer à cette fonction. Si ce que tu veux lui passer est un Vector2f, alors c'est forcément faux.
Laurent Gomila - SFML developer

roket

  • Newbie
  • *
  • Messages: 25
    • Voir le profil
Re : Petite question de cohérence, RenderWindow::convertCoords
« Réponse #2 le: Novembre 07, 2012, 04:12:55 pm »
D'accord, je pensais que la position d un sprite etait aussi en pixels, enfin moi ca a toujours correspondu, dans quel cas la position d'un sprite n'est pas en pixel ? si on fixe un repère ?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Petite question de cohérence, RenderWindow::convertCoords
« Réponse #3 le: Novembre 07, 2012, 04:29:39 pm »
Il y a deux espaces totalement différents à considérer.

1. Le "monde", la "scène", appelle-ça comme tu veux. C'est là qu'évoluent les entités 2D. Il n'a pas de limite, et les coordonnées sont continues (float).

2. Le "viewport". C'est là que ton monde apparaît, après toutes les transformations nécessaires. C'est donc en gros la fenêtre dans laquelle tu dessines. Il est limité par la taille de la fenêtre, et les coordonnées sont des pixels (int), il n'y a pas de "demi-pixel".

C'est comme dans la vraie vie, par exemple si tu regardes une scène à travers une caméra. L'espace est infini et continu, et toi tu en vois une petite partie convertie en pixels, sur l'écran de ta caméra.

Par défaut et dans la plupart des cas, ces deux espaces coïncident dans SFML. Mais si tu utilises une vue (sf::View), ce n'est plus le cas.
Laurent Gomila - SFML developer

roket

  • Newbie
  • *
  • Messages: 25
    • Voir le profil
Re : Petite question de cohérence, RenderWindow::convertCoords
« Réponse #4 le: Novembre 07, 2012, 04:41:15 pm »
D'accord, merci !

 

anything