Гледам да създам проста игра с лабиринт, за да изследвам текущите 3d възможности на JavaFX 2 (версията с Java 7).
Мога да позиционирам и завъртам правоъгълници за стени, но изглежда не мога да позиционирам по Z измерението.
Вижте кода по-долу. Зелената стена е в средата на лявата и дясната стена - как да я преместя отзад? Забележете, че няма свойство на z() builder.
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();
}
}