Une question de logique

Posté par Redstar le 24/4/2021 13:06:19
Coucou tout le monde,

J'ai deux problèmes à vous soumettre:

Seul 2-3 personnes le savent, je teste le moteur de jeu Godot et je tente de recopier la mécanique d'un très vieux jeu 2D.

On n'est pas vraiment dans de la programmation pur, c'est plus mathématique.


Problème 1:

Donc, j'ai un véhicule (un bulldozer), celui-ci doit aller d'un point A vers un point B. Avant de ce déplacer sur un point de passage, je désire que celui-ci s'oriente d'abord, par saccade d'une image et une fois sur la bonne image, il peut se déplacer.

Une fois arrivé au point de passage 1, il doit aller au point 2 en répétant l'opération (rotation puis avancer).

Voici en image la scène: https://pasteall.org/media/3/b/3bf43f0b2cc6d791b9dfffecf2cc5f28.jpg

On m'a parlé d'utiliser les angles. J'ai effectivement un nombre maximum de 3.14, soit Pi (180°) mais si je clique sur les cases du bas, j'ai des nombres négatifs (soir - Pi/2, - Pi/4, etc.) !

Ma question est: quel opération je dois élaborer pour faire correspondre un radians à la bonne image, en sachant que j'en ai 8 (je précise que j'en aurai le double plus tard mais je fais un plus simple pour l'instant) ?


Problème 2:

En supposant que le problème 1 est résolut, mon véhicule ne doit pas s'orienter n'importe comment: Par exemple, si celui-ci à l'image 0 et qu'il doit avoir l'image 6, il ne doit surtout pas faire toute la plage d'image pour arriver à celle désirée, il devrai démarrer dans le sens inverse.

Ma question est donc: comment je peux faire comprendre au système qu'il doit choisir de faire le sens inverse plutôt que le sens normal ?

Je veux dire par là que c'est impossible que 0 soit plus grand de 6, donc obligatoirement dans le cas contraire, il va faire toute la plage d'image. C'est ce que je veux éviter.

Comment engageriez-vous le problème ?

Cette contribution était de : http://blenderclan.tuxfamily.org/html/newbb/viewtopic.php?forum=3&topic_id=50652&post_id=588624