Echelles d'objets et textes

Voilà, juste deux petites questions rapides :

  • J’ai fait une barre de vie à mon vaisseau et cette dernière voit donc son échelle horizontale
    diminuer en fonction de la vie du vaisseau. Le souci, c’est que la barre se rétrécit des deux côtés !
    J’ai essayé de changer le (point) centre de l’image et ça n’a pas marché, comment faire ?
    Désolé si c’est une question à solution très bête, mais je n’y arrive tout simplemement pas ! je crois que je travaille trop…

  • J’ai bien compris que les actions afficher un texte étaient remplacées par des actions sur les objets textes;
    mais cela veut-il dire que je vais devoir créer un objet texte pour chaque texte affiché à l’écran (vie, énergie, bouclier, boost,…) ?
    J’ai remarqué également que mes anciennes actions afficher un texte étaient gardées telles quelles dans GD.
    Puis-je encore les utiliser (plus pratique pour moi) ou dois-je commencer à convertir tout ça pour ne pas avoir
    de problème avec les nouvelles versions du logiciel ?

En effet, l’échelle va intervenir comme si son le centre de “réduction” était effectivement au centre de l’objet.
Peut être peux tu essayer de changer la position X de ton objet en faisant par exemple :

Faire =100+(BarreVie.ScaleX()-1)*BarreVie.Width()/2 à la position X de BarreVie

Ce sera gardé ( Quoique ça commence à être limite question implémentation mais au pire je bascule ça dans l’extension de dessin primitif pour que ce soit plus cohérent, car il s’agit bien de ça, du dessin primitif. ), car ça fournit un support minimal d’affichage de texte, mais mieux vaut utiliser maintenant les objets textes.
Donc tu peux les garder sans soucis, mais si tu as des textes statiques, qui ne font rien de spécial à part afficher de la vie par exemple, les convertir en objet texte est mieux : Ils offrent plus de possibilités ( Action d’opacité, de rotation… ) et de facilité ( Tu peux les placer directement sur l’éditeur de scène ).

Salut 4ian,
j’espère tout d’abord que tu as bien profité de ton week-end, car j’ai quelque chose pour t’aider à te remettre dans le bain… :stuck_out_tongue:

Bon, j’ai testé ta formule et cela repositionne la barre de vie à de mauvaises coordonnées… :cry:
Je me suis donc penché un peu sur les maths, et je crois avoir accouché de la formule correcte :
220-((SpecialBar.Width()-(SpecialBar.Width()*SpecialBar.ScaleX()))/2)
j’ai fait plusieurs tests sur le papier, et mes simulations sont concluantes.
Le problème, c’est que là aussi GD repositionne la barre de vie à des coordonnées erratiques…
J’ai encore vérifié mes calculs, qui concluent toujours sur de bons résultats, du coup je ne vois pas ce qui cloche !
Ça me stresse de bloquer sur une formule tellement simple…

Essaie : object.Width()/2-Largeur de l’objet à l’origine+position X voulue

Heu… excuse-moi, je n’ai pas saisi ce que tu voulais dire.

En fait, la fonction Width prend déjà compte de l’échelle de la taille de l’objet.
Tout ce que tu as donc à faire, pour un objet nommé BarreDeVie et de taille initiale 20 pixels, que tu veux placer à la position 100, c’est :

Faire =BarreDeVie.Width()/2-20+100 à la position X de BarreDeVie

Aaaaaaah, ça change tout ! ok, je n’avais pas compris ça…

Par contre, selon moi, la formule exacte serait donc “100-((20-Bar.Width())/2)” (pour ceux que ça intéresse).
Bon, malheureusement, et je crois que c’est à cause des pixels qui sont toujours des chiffres intégraux (forcément),
la barre se décale toujours de trois ou quatre pixelsen arrière… mais ce n’est pas trop grave, ça passe.

Si ce n’est pas trop de boulot pour toi 4ian, cela pourrait tout de même être utile de rajouter une option pour définir
le centre de l’échelle d’un objet. Mais bon, j’avoue que ce n’est pas non plus une implémentation indispensable. :stuck_out_tongue:
Et merci de ton aide :slight_smile:

Vérifie que ta barre remplie bien complètement l’image, qu’il n’y a pas de transparent sur les bords. J’ai testé chez moi avec un rectangle plein, je n’ai pas remarqué de problème.

Question de gout quoi, car ça revient au même :slight_smile:

J’avais pensé à ça, mais je n’étais pas sûr à l’époque de l’impact que ça pourrait avoir sur les performances. Mais oui, ce serait plus pratique si ça existait.

Oh là là… je crois que je manque un peu de recul là-dessus… Oui, tu as raison, j’avais rajouté un effet de glow autour du rectangle,
j’ai du coup rogné l’image en conséquence. Ma faute !

Non, en fait, quand on me donne une formule toute faite, je tente de la reproduire à ma manière afin de la comprendre,
et le résultat n’est pas toujours aussi efficace que la formule originale…
Je ne mets pas en doute tes conseils, loin de là :smiley:

Ah, si cela a un impact sur les performances, laisse tomber, cela n’en vaut vraiment pas la peine (enfin pour moi).
Heu, du coup, la modification de l’échelle d’un objet consomme-t-elle autant que modifier son l’opacité ou ses forces ?

Normalement, un objet avec une échelle de 4032 ou de 1 aura le même impact sur le performances, il y a le même nombre de calculs effectués dans les deux cas.