【问题标题】:Create a first person camera in JavaFX在 JavaFX 中创建第一人称相机
【发布时间】:2021-09-26 21:52:48
【问题描述】:

尝试在 javafx 中创建第一人称相机时,我尝试使用相机的平移坐标将旋转轴设置为新的 Point3D。 那没有用,所以我开始在 stackoverflow 上搜索,因为我最近才安装 javafx,我对它还不满意,因此甚至不知道如何尝试解决这个问题。 无论如何,我发现了以下关于此事的线索:

How would I make a first person camera in JavaFX 3D?

但是,如果我复制此代码并实施建议的修复程序,我仍然没有得到合适的第一人称相机,因此我们将不胜感激。

下面是演示问题的简单示例代码。

package application;

import javafx.application.Application;
import javafx.scene.PerspectiveCamera;
import javafx.scene.Scene;
import javafx.scene.SubScene;
import javafx.scene.control.Slider;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.paint.PhongMaterial;
import javafx.scene.shape.Box;
import javafx.scene.transform.Rotate;
import javafx.stage.Stage;

public class Main extends Application {

    BorderPane pane = new BorderPane();
    Box box = new Box(150, 150, 600);
    SubScene sub = new SubScene(new Pane(box), 600, 600);
    PhongMaterial mat = new PhongMaterial(Color.RED);
    PerspectiveCamera cam = new PerspectiveCamera();

    @Override
    public void start(Stage stage) throws Exception {

        sub.setCamera(cam);

        cam.setRotationAxis(Rotate.Y_AXIS);

        box.setMaterial(mat);
        box.setManaged(false);
        box.setTranslateX(300);
        box.setTranslateY(300);
        box.setRotationAxis(Rotate.X_AXIS);
        box.setTranslateZ(100);

        stage.setScene(new Scene(pane));
        stage.sizeToScene();

        Slider slider1 = new Slider();
        slider1.valueProperty().bindBidirectional(cam.rotateProperty());

        pane.setCenter(sub);
        pane.setBottom(slider1);

        stage.centerOnScreen();
        stage.show();

    }
    public static void main(String[] args) {
        launch(args);
    }
}

【问题讨论】:

  • “我仍然没有合适的第一人称相机”请解释一下你的期望和你得到了什么
  • @c0der 使用当前代码,相机似乎围绕 x = 0 旋转(如果您围绕 y 轴旋转它)。然而,我希望它围绕自身旋转。这意味着,您应该看不到当前看不到的对象,因为它通过绕任一轴旋转而被另一个对象阻挡。就像我说的,它应该表现得像第一人称相机,就像在任何第一人称游戏中一样。

标签: java javafx 3d camera


【解决方案1】:

https://github.com/FXyz/FXyz/blob/master/FXyz-Core/src/main/java/org/fxyz3d/scene/SimpleFPSCamera.java

我们已经有一段时间没有更新它了,但它应该能让你开始。

【讨论】:

  • 打扰了,我会调查的!
猜你喜欢
  • 1970-01-01
  • 2012-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多