1
我想了解在javafx中編程3D。我的目標是將光標鎖定在中心或將其移至中心以獲得第一人稱視角。JavaFX第一人稱中心鼠標
我做了一個鼠標移動事件,我將光標移動到屏幕中間,然後根據我將鼠標移動到的位置更改相機。問題在於,無論何時將光標移回中心,事件都會再次觸發相機角度的變化。任何人都知道如何將光標移回中心時,它不會影響相機角度?
scene.setOnMouseMoved(e -> {
int screenWidth = (int) Screen.getPrimary().getBounds().getWidth();
int screenHeight = (int) Screen.getPrimary().getBounds().getHeight();
moveCursor(screenWidth/2, screenHeight/2);
double dx = mouseX - e.getSceneX();
double dy = mouseY - e.getSceneY();
mouseX = e.getSceneX();
mouseY = e.getSceneY();
camAngleX += dx/10;
camAngleY -= dy/10;
});
以下是添加了布爾檢查後... 我定義的「ignoreMouseMove」別的地方。
scene.setOnMouseMoved(e -> {
if (ignoreMouseMove) {
ignoreMouseMove = false;
} else {
double cx = primaryStage.getX() + scene.getX() + sceneX/2;
double cy = primaryStage.getY() + scene.getY() + sceneY/2;
double dx = mouseX - e.getSceneX();
double dy = mouseY - e.getSceneY();
mouseX = e.getSceneX();
mouseY = e.getSceneY();
camAngleX += dx/10;
camAngleY -= dy/10;
ignoreMouseMove = true;
moveMouse(cx, cy);
}
}
我添加了布爾檢查就像你說的,它仍然沒有工作 – Ale
所以你仍然得到'mouseEvents'的行爲遞歸調用自己無限的時間? – Jhonny007
是的,你想看看整個代碼? – Ale