Повернуть прямоугольник 2D для обнаружения попадания - PullRequest
0 голосов
/ 10 июня 2018

Я хотел повернуть прямоугольник на определенный угол, так как у меня игра с использованием java fx, в которой кометы движутся под углом.Если ракета пересекается с этой кометой, игра окончена.Однако диагональная комета имеет прямоугольник в 0 градусов, который покрывает ненужное пространство.Я попытался использовать следующий код, но прямоугольники по-прежнему 0 градусов:

public void isRocketHit(){
    Rectangle2D rocketrec = new Rectangle2D(rocket.getX(), rocket.getY(), rocket.getImage().getWidth(), rocket.getImage().getHeight());
    for(Streak i : rstreaks){

        double width = i.getImage().getWidth();
        double height = i.getImage().getHeight();
        Rectangle2D cometrec = new Rectangle2D(i.gmarkX(), i.gmarkY(), width, height);
        double rotationCenterX = (i.gmarkX() + width)/2;
        double rotationCenterY = (i.gmarkY() + height)/2;

        gc.save();
        gc.translate(rotationCenterX, rotationCenterY);
        gc.rotate(i.getAngle());
        gc.translate(-rotationCenterX, -rotationCenterY);
        gc.fillRect(i.gmarkX(), i.gmarkY(), width, height);
        gc.setFill(Color.AZURE);

        if(rocketrec.intersects(cometrec)){
            play = false;
            System.out.println("HIT");
        }

        gc.restore();
    }
}
...