Bonjour,
Je programme actuellement un jeux, ou un joueur placé au centre de l'écran doit contrer avec un bouclier des balles rebondissantes et arrivant des 2 cotés de l'écran.
Pour faire rebondir les balles, j'utilise une sinusoïde comme modéle. Le problème vient de la collision entre la balle et le bouclier. Comme je fais juste varier l'axe X de la balle, lorsqu'à lieu la collision, la balle rebondit mais en suivant la même sinusoïde, et elle revient donc sur ses pas au lieu par exemple si elle vient de par en haut du boublier, de rebondir vers le bas.
Je sais pas si j'ai été clair, mais en gros il faut trouver une sinusoide déphasée ayant au point d'impact le meme X et Y que la 1ere sinusoide.
Voici le prog :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 void Cbowl::update() { pos_X += (float)way * (speed+SpeedIncrement)/10 * (100/FPS) ; pos_Y = 420 - amplitude * fabs( sin( step * pos_X ) ) ; }
Ici, en admettant que la balle suive la trajectoire de la courbe bleue au départ, après impact elle doit suivre l'allure de la courbe rouge.
Partager