Voilà j'ai réussit à créer un algo qui modifie la direction d'une balle et en même temps ça vitesse, mais je suis bloqué sur un truc.
Pour modifier la direction de la balle il faut jouer sur angle_x et angle_y.
Pour un angle:
0°, angle_x=100 et angle_y=0
90°, angle_x=0 et angle_y=100
45°, angle_x=angle_y
>45°, angle_x<angle_y
<45°, angle_x>angle_y
Et pour la vitesse, plus les valeurs de angles_x et angle_y sont petites mais avec le même écart alors la vitesse sera plus lente et inversement.
Mais le problème c'est que je n'arrive pas à trouver l'algo capable d'attribuer les bonnes valeurs pour avoir l'angle voulu, à savoir que cette angle est obtenu par l'écart qu'il y a entre les 2 variables.
Je ne parle pas d'utiliser les flottants. Je te donne juste la description mathématique correspondante, qui pouvait éventuellement te permettre de préciser ta question.
En gros qu'est-ce que tu cherches à faire? "faire varier l'écart" ça ne veut rien dire. Tu veux dire, modifier theta en laissant v constant? (au passage, "l'écart" pourrait sous-entendre angle_x-angle_y ou à la limite (angle_x-angle_y)/v, mais je présume que ce n'est pas de ça que tu veux parler, d'où l'intérêt d'une formalisation un minimum mathématique, sinon on va pas aller loin).
« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)
Je vais résumer:
Ma balle ce déplace avec des 'vecteurs' dans une boucle, nommé xdir et ydir.
Si j'ajoute à xpos xdir et à ypos ydir, la balle ce déplacera avec un angle de 45°, or j'ai réalisé une fonction qui permet de contrôler l'incrémentation de xpos et ypos avec xdir et ydir de tel que la balle peut effectuer n'importe quel angle.
Or je constate ceci, c'est que plus je diminue la valeur de angle_x (qui fait varier l'incrémentation de xpos avec xdir tout les x sur 100 pixels) ainsi que angle_x, j'obteint un angle paramètrable est une vitesse, donc si:
angle_x=angle_y alors xpos et ypos d'incrémenteront en même temps et donc j'aurais un angle de 45°.
angle_x>angle_y alors xpos s'incrémentera plus vite que ypos et donc j'aurais un angle <45° suivant l'écart qu'il y a entre angle_x et angle_y.
angle_x<angle_y alors xpos mettera plus de temps à s'incrémenter que ypos et donc j'aurais un angle >45° suivant l'écart entre angle_x et angle_y.
Dans le cas ou:
angle_x=0
angle_y=100
La balle ce déplacera verticalement, c'est logique car seulement ypos s'incrémentera. Ce qui donne un angle de 90° et inversement pour angle_x=100 et angle_y=0, 90° et déplacement horizontal de la balle.
Pour la vitesse j'y réfléchirais plus tard. En fait j'ai besoin de cette méthode pour mon jeu arkanoid et il semble pour l'instant très rapide.

C'est quoi la différence entre xdir et angle_x ?
Et sinon tu n'as pas répondu aux questions que je t'ai posé.
« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)
Je te demandais si ta balle ne se déplaçait qu'en diagonale.
Bon, sinon, je n'arrive toujours pas à comprendre ton problème.

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
Pour situer le déplacement de la balle, ça ne change rien d'utiliser des xdirs et des ydirs, parce qu'un cosinus prend des valeurs entre -1 et 1 lui aussi, ainsi qu'un sinus, donc tu peux aussi facilement utiliser des cos/sin.

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
Bon, geogeo, avec l'angle tu veux pouvoir fixer des valeurs équivalentes à celle d'un cosinus ou d'un sinus à tes variables angle_x et angle_y, c'est ça ?
C'est à dire que plus l'angle se rapproche de 0, plus angle_x augmentera et angle_y diminuera.
Et plus l'angle se rapprochera de 90°, plus angle_x diminuera et angle_y augmentera.
C'est ça ?

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
Ben je ne vois pas comment faire sans approximer mathématiquement les fonctions sinus et cosinus...
Et je ne comprends toujours pas pourquoi tu ne veux pas les utiliser...

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
Je pense m'en passer dans le cas ou je définit une fonction ou je passe en argument angle entre 0 et 90 qui me dirige correctement ma balle, dans une des 4 directions. Et je pense ne pas avoir besoin d'approximation mathématique de cos et sin avec angle_x et angle_y car ils me permettent de régler l'angle voulu.
OK, je vais réfléchir à tout ça.
Euh, je t'ai posé deux questions quand même...
Et je ne comprends toujours pas pourquoi tu veux t'en passer alors qu'ils te permettent directement de te donner ce que tu cherches.

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »