我正在为一个项目制作乒乓球,但由于某种原因,当球从任何墙壁或球拍上反弹时,速度会发生变化。我试图让它只翻转方向。我不确定出了什么问题,有人可以帮忙吗?我做了一个碰撞课,并在xVel
(-xVel
)碰到桨时翻转yVel
,当它碰到顶部或底部,但由于某种原因,它的速度是当球击中任何球拍或屏幕的顶部或底部时球会发生变化。我把碰撞和移动方法放在下面:
public void collision()
{
if(ball.intersects(p1.paddle))
{
xVel = - xVel;
}
if(ball.intersects(p2.paddle))
{
xVel = - xVel;
}
}
public void move()
{
collision();
ball.x += xVel;
ball.y += yVel;
//Bounce the ball when edge detected
if(ball.x<=0)
{
p2Score++;
reset();
}
if(ball.x>=690)
{
p1Score++;
reset();
}
if(ball.y<=22)
{
yVel = -yVel;
}
if(ball.y>=490)
{
yVel = -yVel;
}
}
&#13;