JavaFX在3D棋场上的单独透视图

时间:2014-04-20 20:50:55

标签: 3d javafx perspectivecamera

我得到了以下游戏窗口: http://www.directupload.net/file/d/3598/b48lqpur_png.htm(对不起,这里发布img)

红盒子是VBox(或其他容器,我还不能决定)。 我想设置一个3D视角Chessfield而不是明星。 但是如果我将Framework(如Java-Tutorial MoleculeSampleApp)加载到Container中,我会得到4个结果:

  • 第一个:我看到了3D国际象棋,但是我的容器外面都是 与Chessfield一起旋转。
  • 第二个:我看不到棋场(但我的控制台输出全部说明了 正确完成创建国际象棋的步骤)
  • 第三个:我看到一个没有任何视角的黑盒子。
  • 最后:我只看到了Chessfield的框架

我的代码是:

Stage stage = new Stage();
        stage.setScene(
                createScene(loadPane(ContentManager.DEFAULT_SCREEN_FXML, ContentManager.GAME_SCREEN_FXML))
        );
        FieldLayerController flc = new FieldLayerController();
        flc.setFieldSize(6);
        flc.buildField();
        flc.buildScene();
        flc.buildCamera();
        Scene scene = new Scene(flc.root, 1024, 768, true);
        flc.handleKeyboard(scene, (Node)flc.world);
        flc.handleMouse(scene, (Node)flc.world);
        Node node = stage.getScene().lookup("#game_box");
        ((VBox)node).getChildren().add(flc.root);
    stage.show();

此代码生成您在图片上看到的窗口。

是否可以仅在一个Container中获取透视图?

我希望我能说出我的问题是可以理解的。 (如JavaFX 3D - How to set different cameras for Group with 3D object and SubScene with UI Controls?

1 个答案:

答案 0 :(得分:2)

查看我们的项目.. F(X)yz它是一个JavaFX 3D库..有一个CameraView类和一个Cutaway类(CameraView包裹在一个可拖动的框架中),可以按照您的需要进行操作。克隆项目并运行CameraViewTest。主场景和cameraView都有用于移动的鼠标处理程序,因此可以玩。另一个例子是BillboardBehaviorTest类。

希望这有帮助!