如何处理java中圆圈和半圆碰撞的反应?

时间:2013-12-22 04:30:01

标签: java

我有一个圆圈(不受玩家控制)和半圆(玩家控制)不正确地碰撞。检测方法工作正常,并在发生碰撞时返回布尔值。但是,反应不能正常进行。我最注意的问题是,当半圆不移动时,圆圈直接穿过半圆而不改变速度。圆形和半圆形都有称为speedX和speedY的整数。作为参考,类球是圆形,类球员是半圆形。 我的代码如下:

if(contact==true)
   runBounce();

public void runBounce()
{
    int speedX=ball.getSpeedX()+(player.getSpeedX()/2);
    int speedY=ball.getSpeedY()+(player.getSpeedY()/2);
    if (player.getSpeedX()==0 && player.getSpeedY()==0) 
    {
        bounceOff();
    }
    else
    {
        ball.setSpeedX(speedX);
        ball.setSpeedY(speedY);
    }
}

public void bounceOff()
{
   ball.setSpeedX(ball.getSpeedX()*-1);
   ball.setSpeedY(ball.getSpeedX()*-1);
}

为什么我的代码不起作用,我该怎么做才能修复它?

1 个答案:

答案 0 :(得分:2)

你的最后一行是你的问题...你在Y上使用了反向X并输入了错字。