如何解决JavaFX PerspectiveCamera:相机影响鼠标位置
我有一些代码,其中有一个带有 PerspectiveCamera 的 SubScene。 我想要几个 EventHandler,它们在 SubScene 上使用 MousePosition。
然而,相机似乎对注册的位置有影响。 Cameras TranslateZ 属性越大,失真越严重。
例如,如果我想拖动场景,第一次拖动会使它跳得很远。
我的相机:
private void setCamera(){
camera = new PerspectiveCamera(true);
camera.setNearClip(0.1);
camera.setFarClip(10000.0);
camera.setTranslateX(300);
camera.setTranslateY(350);
camera.setTranslateZ(-3000);
camera.setRotationAxis(Rotate.X_AXIS);
camera.setRotate(25);
camera.setFieldOfView(40);
}
这是我创建子场景的地方:
private SubScene createMapSubScene(StackPane wrapper){
double stageWidth = stage.getWidth();
double stageHeight = stage.getHeight();
double menuBarHeight = vMenuBar.getHeight();
mapSubScene = new SubScene(wrapper,stageWidth,stageHeight-menuBarHeight);
mapSubScene.setCamera(this.getCamera());
return mapSubScene;
}
这是控制器部分:
game.getMapPane().setonDragDetected(drag ->{
System.out.println("DragDetectet");
game.getMapPane().setonmousepressed(event -> {
//Position,an der drag-event gestartet wurde
panesourceX = event.getX();
panesourceY = event.getY();
event.consume();
});
game.getMapPane().setonMouseDragged(event ->{
//Position,an die Maus hingedragged wurde
double paneTargetX = event.getX();
double paneTargetY = event.getY();
game.getMapSubScene().setTranslateX(paneTargetX-panesourceX);
game.getMapSubScene().setTranslateY(paneTargetY-panesourceY);
event.consume();
});
} );
有没有办法让这个工作,或者拖放或其他鼠标控制的操作根本不是 PerspectivCamera 的选项? (我也试过使用子场景节点,没什么区别)
希望得到答复! 提前致谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。