我有一个带有以下变量的球类:
int x,y,width,height;
double velX,velY;
Run Code Online (Sandbox Code Playgroud)
我想这样做,以便每当球击中一个阻挡时,它会反弹并且会失去一些速度.
//Gravity & movement for the ball
ball.setVelY(ball.getVelY() + 0.2);
ball.setY((int)(ball.getY() + ball.getVelY()));
//Make the ball bounce.
if(ball.getBounds().intersects(block.getBounds()){
ball.setVelY(ball.getVelY() * -0.7);
}
Run Code Online (Sandbox Code Playgroud)
我认为这会使球慢慢反弹,直到它完全移动大麦(我会测试然后让球完全停止),但事实并非如此.球会正常弹跳几次,每次弹跳都小于之前的弹跳.然而,在几次反弹之后,球将比之前的反弹更低地弹跳.为什么这是我应该怎么做才能解决它?