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

Auteur Sujet: Récupérer la position d'un pixel sur un sprite  (Lu 2827 fois)

0 Membres et 1 Invité sur ce sujet

m@thieu41

  • Newbie
  • *
  • Messages: 23
    • Voir le profil
Récupérer la position d'un pixel sur un sprite
« le: Avril 09, 2013, 08:37:01 pm »
Bonjour,

Tout d'abord, je précise que j'utilise la SFML 2.0 en C++.

Alors voilà: pour gérer les collisions, j'ai besoin de récupérer les coordonnées d'un pixel de mon sf::Sprite, afin d'avoir une base d'où démarrer mes calculs.
Cependant, mon image peut tourner sur elle-même, ce qui fait que la position renvoyée par getPosition() ne correspond pas à l'emplacement réel du pixel.
J'ai essayé avec la fonction getGlobalBounds(), mais il s'avère qu'elle ne "vise" pas toujours le même pixel : getGlobalBounds().top peut dépendre soit (par rapport à la texture) du coin supérieur gauche, soit du coin inférieur droit, et je pense qu'il y a le même problème pour getGlobalBounds().left.

Auriez vous une astuce à me proposer pour pouvoir récupérer les coordonnées du pixel correspondant au pixel supérieur gauche sans rotation?

Merci d'avance! ;)

PS: Je me suis rendu compte que j'ai posté dans la mauvaise section, désolé :-[
« Modifié: Avril 09, 2013, 09:15:04 pm par m@thieu41 »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Récupérer la position d'un pixel sur un sprite
« Réponse #1 le: Avril 09, 2013, 10:21:36 pm »
Je vois à peu près ce que tu veux faire, mais je n'arrive pas à comprendre précisément car ta description reste assez vague et imprécise. En fait tu veux récupérer les coordonnées locales du point qui correspond au coin haut-gauche global, c'est ça ?
Laurent Gomila - SFML developer

m@thieu41

  • Newbie
  • *
  • Messages: 23
    • Voir le profil
Re : Récupérer la position d'un pixel sur un sprite
« Réponse #2 le: Avril 10, 2013, 05:48:40 pm »
Non en fait c'est l'inverse ;)
Je vais essayer d'être plus clair ;D.

J'ai une image, et je voudrait pouvoir savoir à tout moment, après une rotation, où se situe le pixel en haut à gauche de l'image d'origine.

Par exemple, si j'ai une image avec un pixel bleu en haut à gauche, et que je fais tourner l'image, j'aimerais pourvoir localiser le pixel bleu et avoir sa position.

Donc en fait je veux récupérer les coordonnées globales du point qui correspond au coin haut-gauche local (si local correspond à la texture et global au sprite dans la fenêtre).

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Récupérer la position d'un pixel sur un sprite
« Réponse #3 le: Avril 10, 2013, 07:33:41 pm »
sf::Vector2f p = sprite.getTransform().transformPoint(sf::Vector2f(0, 0));
Laurent Gomila - SFML developer

m@thieu41

  • Newbie
  • *
  • Messages: 23
    • Voir le profil
Re : Récupérer la position d'un pixel sur un sprite
« Réponse #4 le: Avril 10, 2013, 07:42:54 pm »
Merci beaucoup, c'est parfaitement ce que je voulais!  ;D

Dire que ça fait minimum 3h que j'essaye de calculer la position de ce pixel en me basant sur celui du milieu et avec mes maigres notions en trigonométrie ::)

Encore merci pour ton aide! :)