Déplacer un sprite par rapport à un de ses points

Bonjour,

Sous RPG Maker ( :sunglasses: ), lorsqu’on manipule une image, on peut choisir de déplacer un objet à partir de son coin haut-gauche ou de son centre de symétrie. Dans 95% des cas, on choisit le centre de symétrie, car cela permet de gérer plus naturellement les déplacements complexes, notamment les zooms/rotations. L’image reste ainsi toujours à la même position à l’écran, tout en changeant d’échelle/d’angle.

Dans GD, le déplacement d’un objet se fait obligatoirement par rapport à son coin haut-gauche. C’est bien pour positionnner un élément fixe, mais ça l’est moins pour suivre un objet qui se balade dans le calque.

Il serait intéressant de rajouter un paramètre dans les déplacements d’objet, où on peut choisir à partir de quel point on veut que le déplacement se fasse (Origine et Centre au minimum, prise en compte des points personnalisés si possible). Les anims complexes en seront simplifiées, et on pourra même proposer des animations “articulation” entre plusieurs objets sans que ce soit -trop- l’usine à gaz.

Merci. :bulb:

Salut;

c’est simple il suffit de rajouter soit la moitiés de la taille de l’objet (on arrive au milieu) soit on rajoute tout (coin inférieur droit) après tu joue avec les X Y pour arriver au milieu haut ect… :wink:

C’est la solution que j’utilise faut de mieux, mais elle est trop complexe à mettre en oeuvre.
Disons que cela rajoute un niveau de complexité dans le processus de débuggage (ma formule est bonne ou pas ? Peut être que c’est la variable ? Ou l’échelle ? Mon centre est-il bien centré au moins ?).

L’autre souci est que cela ne marche plus avec un point custom.
Imagine que tu veuilles placer un canon sur une aile d’un vaisseau. Et que ce canon doive suivre les mouvements, rotations et changement d’échelle du-dit vaisseau. Ce canon étant lui-même déjà remis à l’échelle pour correspondre à l’échelle (modifiée elle aussi) du vaisseau.
Et bien sûr, il faut faire de même avec les 3 autres canons, dont l’apparence peut changer selon l’upgrade choisi par le joueur.
En général, tu te tires une balle dans les 5 minutes qui suivent.

Avec la possibilité de faire correspondre deux points custom en une opération (positionner le point “ArrimageCanon” au point “ArrimageAile1”), la complexité pour l’utilisateur diminue nettement, et les erreurs de programmation du même coup.

On peut déplacer le point origine si ça nous chante avec l’éditeur d’objet ( Enfin, pour les Sprite j’entends ).
Normalement, ça devrait résoudre ton problème non ?

Mais ça ne marche que pour un point, celui nommé Origine.
Et si je veux pouvoir choisir un point parmi plusieurs pour x raisons aussi stupidement essentielles qu’essentiellement stupides … :stuck_out_tongue:

C’est juste pour savoir si c’est possible et pas trop chiant à coder.
Sinon, ce sera à mettre dans les “features de folie qui seront implementées quand je serai riche et célèbre et que ça à faire”.

Bonjour
On peut déjà placer des points sur des sprites bien que je ne les ai jamais utilisé.

[attachment=0]poinit.png[/attachment]

Un exemple : j’ai nommé le point a et je le place. Après je peux créer un autre point b que je place… Et on peut repositionner un point en cliquant sur son nom dans l’option à gauche de la capture d’écran.
Après je ne sais pas comment les utiliser dans les évènements…

Voilà, et ce que c’est ce que tu as demander ?
jéréime 14

Ben non. :sunglasses:

Un exemple extrême : animer un squelette.
J’ai un sprite Tête, un sprite Torse, deux sprites bras, deux sprites jambes.
Chaque sprite a un ou plusieurs points de jointure.
Comment je fais pour les garder ensemble ?

Je pense qu’il faut pouvoir désigner le point de chaque couple de sprite, soit deux points spécifiques. Et donc 5 points à manipuler pour le sprite corps, en plus du point origine et centre.