Ce code fait rebondir la balle autour de la toile:balle rebondit parfois ne parfois pas
//advance the ball
ball.advance();
//check if ball should bounce off canvas sides
if (ball.getCenterX() + ball.getRadius() > canvas.getWidth())
ball.setDirectionX(LEFT);
if (ball.getCenterX() - ball.getRadius() < 0)
ball.setDirectionX(RIGHT);
if (ball.getCenterY() + ball.getRadius() > canvas.getHeight())
ball.setDirectionY(UPWARDS);
if (ball.getCenterY() - ball.getRadius() < 0)
ball.setDirectionY(DOWNWARDS);
ressemble à ceci: https://gyazo.com/7b51794a6e5e474b508cf442ddebc8dc
Im essayant de faire rebondir sur la palette quand il frappe et J'ai utilisé ce code:
boolean bounceInY = ball.getCenterY()+ ball.getRadius() > paddle.getTopLeftY();
boolean bounceInX = (ball.getCenterX()+ ball.getRadius() > paddle.getTopLeftX()) && (ball.getCenterX()+ ball.getRadius() < paddle.getTopLeftX() + paddle.getWidth());
if (bounceInY && bounceInX)
ball.setDirectionY(UPWARDS);
la question est im avoir qu'il est incohérent et parfois il rebondira correctement, parfois, il passera par la palette avant de rebondir, et SOMET imes, il passera à travers la pagaie et ne rebondira pas du tout. Cela ressemble à ceci: https://gyazo.com/d1b5c848290fc23183c9b7296f757a51 Je ne suis pas sûr de ce que je fais mal, le code de la balle pour rebondir sur la pagaie semble que cela devrait fonctionner pour moi. Toute aide est appréciée :)
Avez-vous essayé de déboguer votre code avec quelques exemples de coordonnées X, Y? – mvd
Vous devez créer et publier votre [mcve]. –
Vous avez, à tout le moins, manqué un contrôle plus petit que sur y. – Dukeling