Pong

Le problème exposé dans ce sujet a été résolu.

Je suis pas sûr de bien comprendre ton problème, mais tu pourrais faire quelque chose qui ressemble à la réflexion d'un rayon de lumière par un miroir plan ? C'est à dire quelque chose comme ça : En rouge la vitesse à l'arrivée et en vert après le rebond

PS :

1
hypothenuse = sqrt(pow(abs(self.pos[1] - tmp[1]), 2) + pow(abs(self.pos[0] - tmp[0]), 2))  # calcul vectoriel, vu en seconde

1
hypothenuse = sqrt((self.pos[1] - tmp[1])**2 + (self.pos[0] - tmp[0])**2)

Suffirait non ? :p

Bah dans le cas d'une balle qui ne se déforme pas, c'est ce qui se passe à peu près il me semble ^^ mais tu peux aussi introduire un petit facteur qui simule la déformation de la balle sur la composante de la vitesse normale à la droite de collision

+1 -0

Je ne comprends pas trop pourquoi tu te retrouves avec de la trigo dans cet exercice, mais je n'ai pas l'énoncé.

En fait, gérer les collisions dans un Pong-like est ultra-simple. Je suppose un calcul d'image tous les $T$ ms, les murs sont parallèle à l'axe $x$ et les raquette à l'axe $y$.

  • À chaque intervalle de temps, ta balle se déplace de $dX$ selon $x$ et de $dY$ selon $y$ (valeurs choisies au hasard à chaque nouvelle balle)
  • Collision parfaite contre un mur : la vitesse (donc le déplacement) selon $x$ ne change pas, la balle rebondit parfaitement donc $dY = -dY$
  • Collision parfaite contre une raquette : la vitesse (donc le déplacement selon $y$ ne change pas, la balle rebondit parfaitement donc $dX = -dX$

Après tu peux ajouter facilement des effets :

  • Rebonds imparfaits : tu multiplie $dX$ et $dY$ par une constante < 1
  • Effets dûs à la raquette : tu ajoutes une partie de la vitesse de la raquette à $dY$

Et voilà. Pas besoin de trigonométrie, ni de calculs compliqués comme des racines carrées, etc.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte