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

Auteur Sujet: [SFML 1.6 Bug -> Réglé !] Subrect  (Lu 2639 fois)

0 Membres et 1 Invité sur ce sujet

Kaim

  • Jr. Member
  • **
  • Messages: 70
  • SFML 2
    • Voir le profil
[SFML 1.6 Bug -> Réglé !] Subrect
« le: Juin 09, 2012, 04:15:50 pm »
Bonjour,

je pense avoir découvert un bug :
Lorsqu'on change le subrect d'un sprite dans une image, mettons qu'on mette sf::IntRect rect={15, 15, 25, 25};
Seuls les pixels de (15,15) à (24,24) sont pris en compte, alors qu'on s'attendrait à avoir tout jusqu'à (25,25) ...

A mon avis, le problème se trouve dans la taille du rectangle :
Je suppose que pour charger le contenu, on calcule la taille width/height du rectangle, et que la faute se trouve ici :
il doit y avoir width=Right - Left .... Or la largeur du rectangle n'est pas Right - Left mais bien Right-Left+1 (ici : 11 et non pas 10 -> on veut afficher les 11 colonnes, de la 15 comprise à la 25 comprise !)

La faute que je propose ici donnerai bien le bug que j'ai constaté ...

Et en effet, en fouillant dans les fichiers, je trouve bien cette définition de width dans le fichier Rect.inl, ligne 60 (fonction GetWidth) qui se répercute donc bien dans l'affichage du sprite (Sprite::Render) pour ce que j'ai pu en comprendre ....
Idem pour la hauteur !
« Modifié: Juin 10, 2012, 11:07:53 am par Kaim »
Programme buggé : pléonasme

http://courtois.cc/murphy/murphy_informatique.html#progsbugs

-> Viens (enfin) de passer en SFML 2 !

G.

  • Hero Member
  • *****
  • Messages: 1592
    • Voir le profil
Re : [SFML 1.6 Bug ?] Subrect
« Réponse #1 le: Juin 09, 2012, 05:02:43 pm »
Me semble que c'est connu.
En tout cas le problème n'est plus dans SFML2, car au lieu de définir le coin haut gauche et le coin haut droite, on définit le coin haut gauche et la hauteur / largeur.

Kaim

  • Jr. Member
  • **
  • Messages: 70
  • SFML 2
    • Voir le profil
Re : [SFML 1.6 Bug ?] Subrect
« Réponse #2 le: Juin 09, 2012, 05:11:20 pm »
Ok d'accord  ;D

Je m'en suis aperçu hier et je ne connaissais pas ce bug, donc je préfère poster inutilement que garder ça pour moi ^^

En tout cas, ce bug est réglé avec cette définition du Rect, si on fait attention à ce qui suit :

On affiche les pixel de rect.X à rect.X+rect.W-1 !!  (X position du Rect, et W sa largeur, évidence ?)
Sinon, on affiche 1 pixel de trop cette fois ci !
(x=10, w=10 -> on affiche jusqu'à 19 pour avoir 10 pixels !!)
« Modifié: Juin 10, 2012, 09:37:04 am par Kaim »
Programme buggé : pléonasme

http://courtois.cc/murphy/murphy_informatique.html#progsbugs

-> Viens (enfin) de passer en SFML 2 !

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : [SFML 1.6 Bug ?] Subrect
« Réponse #3 le: Juin 10, 2012, 10:13:40 am »
Oui en effet c'est un vieux truc qui est reglé depuis longtemps dans SFML 2 ;D
Laurent Gomila - SFML developer

Kaim

  • Jr. Member
  • **
  • Messages: 70
  • SFML 2
    • Voir le profil
Re : [SFML 1.6 Bug ?] Subrect
« Réponse #4 le: Juin 10, 2012, 11:07:34 am »
Parfait ! La preuve que la SFML s'améliore de jours en jours !
Programme buggé : pléonasme

http://courtois.cc/murphy/murphy_informatique.html#progsbugs

-> Viens (enfin) de passer en SFML 2 !