我想用javafx做一个乒乓球游戏,我决定用point2d来做击球和击球的位置。
我创建此方法是为了检查墙碰撞
public void checkWallCollision(){
boolean ballHitBottom = posBall.getY() > 500;
boolean ballHitTop = posBall.getY() < 50;
boolean ballHitLeft = posBall.getX() < 0;
boolean ballHitRight = posBall.getX() > 725;
if (ballHitTop || ballHitBottom){
ballDirVector = ballDirVector.multiply(-1);
}
if(ballHitLeft || ballHitRight){
ballDirVector = ballDirVector.multiply(-1);
}
}
但对于这样的点二维物体,我不能像那样乘它。我需要反射Angular 。我想我能帮上忙的另一件事是我如何发球。在这个方法中,我确实有这个Angular ,但我不确定应该用什么方法来访问它。
public void launchBall(){
// Launch the ball
boolean ballDirection = random.nextBoolean();
// bound to an acute angle on start
double ballAngle = Constants._PADDLE_ANGLES[random.nextInt(5) + 1];
if (ballDirection){
ballAngle *= -1;
}
ballSpeed = Constants._BallStartSpeed;
ballDirVector = new Point2D(Math.cos(ballAngle), Math.sin(ballAngle));
}
暂无答案!
目前还没有任何答案,快来回答吧!