你好,我正在尝试用java做一个乒乓球游戏,除了碰撞部分,一切都很棒。我首先使用边界类和交集方法来解决这个碰撞问题,但这个方法只适用于我画的图片上显示的碰撞情况。

所以我自己写了新的代码,而不是使用边界类,我成功地创建了侧面碰撞检测的方法,但我又一次很难解决划桨顶部和底部的碰撞检测。
public boolean collideRight(Ball ball){
if(ball.getLayoutX()+ball.getRadius()>=player.getLayoutX()&&(ball.getLayoutY()+ball.getRadius()>=player.getLayoutY()&&ball.getLayoutY()-ball.getRadius()<=player.getLayoutY()+height)){
return true;
}
else{
return false;
}
}这是我用来检测顶部和底部碰撞的方法。
public boolean collideRightUpSide(Ball ball){
if((ball.getLayoutX()+ball.getRadius()>=player.getLayoutX()&&ball.getLayoutX()-ball.getRadius()<=player.getLayoutX()+width)&&(ball.getLayoutY()+ball.getRadius()>=player.getLayoutY()&&ball.getLayoutY()-ball.getRadius()<=player.getLayoutY()+height)){
return true;
}
else{
return false;
}
}谁能帮帮我。
发布于 2017-04-07 11:11:17
尝试在一个函数中包含这两个if语句,如下所示:
public boolean collideFunction(Ball ball){
if(ball.getLayoutX()+ball.getRadius()>=player.getLayoutX()&&(ball.getLayoutY()+ball.getRadius()>=player.getLayoutY()&&ball.getLayoutY()-ball.getRadius()<=player.getLayoutY()+height)){
return true;
}
else if((ball.getLayoutX()+ball.getRadius()>=player.getLayoutX()&&ball.getLayoutX()-ball.getRadius()<=player.getLayoutX()+width)&&(ball.getLayoutY()+ball.getRadius()>=player.getLayoutY()&&ball.getLayoutY()-ball.getRadius()<=player.getLayoutY()+height)){
return true;
}
else{
return false;
}
}https://stackoverflow.com/questions/43268950
复制相似问题