2015-09-19 1 views
-3

J'essaie de faire rebondir une balle sur les bords d'une pagaie de forme rectangulaire, ce que j'ai fait jusqu'ici, c'est faire rebondir la balle sur le bord supérieur de la pagaie. Mais chaque fois que la balle touche un autre côté (droite ou gauche), elle reste coincée dans la pagaie et ne rebondit pas.make Balle rebondissant sur les bords de l'objet en C

Afin de faire rebondir la balle sur le dessus de la palette j'ai utilisé le ci-dessous le code simple:

// bounce ball off paddle 
     if (object == paddle) 
     { 
       velocityY = -velocityY; 
     } 

Quelqu'un peut-il me aider à améliorer ce code, afin qu'il puisse détecter, si la balle a touché le côté droit ou gauche de la pagaie et l'a fait rebondir.

S'il vous plaît noter que j'utilise C.

Merci,

+0

Pourquoi la downvote? –

Répondre

0

comme vous avez fait avec l'axe Y, après une collision définie

velocityX = -velocityX 

Si vous voulez quelque chose « plus poli "vous pouvez essayer de faire quelque chose comme

if (currentX + ball_radius >= MAX_WIDTH) 
    velocityX = -velocityX; 
if (currentY + ball_radius >= MAX_HEIGHT) 
    velocityY = -velocityY; 

où le point (currentX, currentY) représente ts le centre de la balle.