0

私は、JavaFX 2(Java 7を搭載したバージョン)の現在の3D機能を調べるための簡単な迷路ゲームの作成を検討しています。

壁の長方形を配置および回転することはできますが、Z次元に配置できないようです。

以下のコードを参照してください。緑の壁は左右の壁の真ん中にあります-どうすれば後ろに移動できますか?z()ビルダープロパティがないことに注意してください。

public final class Walls extends Application {

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

    @Override
    public void start(Stage stage) {
        stage.setTitle("Walls in perspective");
        stage.setScene(makeScene());
        stage.show();
    }

    private Scene makeScene() {
        return SceneBuilder.create()
                .width(500)
                .height(500)
                .root(createRoot())
                .camera(PerspectiveCameraBuilder.create().build())
                .depthBuffer(true)
                .build();
    }

    private Parent createRoot() {
        // left wall
        Rectangle node1 = RectangleBuilder.create()
                .x(-200)
                .y(-150)
                .width(200)
                .height(200)
                .fill(Color.RED)
                .rotate(90)
                .rotationAxis(Rotate.Y_AXIS)
                .build();

        // back wall?
        Rectangle node2 = RectangleBuilder.create()
                .x(-100)
                .y(-150)
                .width(200)
                .height(200)
                .fill(Color.GREEN)
                .opacity(0.5)
                .build();

        // right wall
        Rectangle node3 = RectangleBuilder.create()
                .x(0)
                .y(-150)
                .width(200)
                .height(200)
                .fill(Color.BLUE)
                .rotate(90)

                .rotationAxis(Rotate.Y_AXIS)
                .build();

        return GroupBuilder.create()
                .children(node1, node2, node3)
                .translateX(250)
                .translateY(250)
                //.depthTest() ?
                .build();
    }
}
4

1 に答える 1

1

私は追加の呼び出しを信じています

.translateZ(double x)

作成した Rectangle で問題を修正します。

于 2013-01-21T14:28:10.883 に答える