[Corrigé] Problème de dimensionnement des sprites

Bonjour,

J’ai remarqué un bug d’affichage des sprites avec une taille personnalisé :

[size=150]Comment avoir le bug ?[/size]

  • J’ai un objet sprite avec 2 animations, les 2 animations possèdent des images de taille largement différente. Je mets l’objet sur ma scène avec l’animation 1 (à partir de zéro).
  • Je redimensionne cet objet avec une taille personnalisée. Je valide et l’image s’affiche aux bonne dimensions.
    Jusque là NO PROBLEMS
  • Je ferme GD, je le réouvre. (évidemment j’enregistre)
  • Je constate que l’objet s’affiche :
    [list] [*]avec l’animation 1 (normal)
  • avec des dimensions personnalisées (normal)
  • mais ces dimensions sont incorrectes ! (problème)
    [/:m]
    [
    ]J’ouvre la boîte de dialogue propriété de l’objet :
  • Les valeurs de taille sont bien affichées (celles personnalisées correctes), même si l’objet s’affiche mal (problème)
  • Je valide et là, l’objet se remet aux dimensions personnalisées correctes (ouf!)
    [/*:m][/list:u]
    [size=150]Je rappelle que ce bug intervient avec l’animation 1 de l’objet alors que l’animation 0 possède une image de taille différente.[/size]

[size=150]Supposition de l’origine du bug[/size]
Evidemment, je ne suis pas le créateur du logiciel, mais j’ai une idée de la cause du bug :

  • La bibliothèque SFML permet de redimensionner des sprites grâce à des échelles.
  • Je pense que le bug vient du fait que l’échelle est calculée en fonction de la taille voulu (taille perso) et de la taille d’origine de l’objet (taille de l’image)
  • MAIS GD prend comme taille d’origine, la taille de l’image de l’animation 0, même si l’animation 1 est sélectionnée.
  • Je précise que la taille est bien calculée avec validation de la boîte de dialogue Propriété de l’objet, mais qu’elle l’est mal après redémarrage de GD, voir de la scène.

J’espère que j’ai bien détaillé ce bug :stuck_out_tongue: .

Ca c’est du rapport de bug :slight_smile: Je regarde ça dès que possible.

C’est normalement corrigé pour la prochaine version, la mise à jour de la taille est maintenant faite après l’initialisation propre à l’objet.