我的目标是玩骰子游戏。我正在使用 javafx。
第一个问题:有没有一种简单的方法可以在 javafx.ini 中自定义 3d 框?如果我必须在模具的每一面添加一个图像,或者我是否只使用一个环绕盒子的图像,这对我来说并不重要。(经过大量研究,我没有找到任何相关信息。)
在下面的代码中,我创建了一个堆栈窗格,它是一个 3d 立方体。它由 6 个矩形构成,每个矩形都填充了骰子的一侧(1 到 6)。如果我将堆栈窗格旋转 180 度,则应该在前景中的矩形在背景中,而在前面的矩形再次可见。
第二个问题: 如何解决这个问题?
或者有没有更好的方法来实现这一点?起初我正在考虑使用 TriangleMesh,但它似乎和我的版本一样复杂。
@FXML
private StackPane stack;
@Override
public void initialize(URL url, ResourceBundle rb) {
...
//other code
for (int i = 1; i < 7; i++){
Rectangle rt = getRectangle(i);
rt.setSmooth(true);
stack.getChildren().add(rt);
switch(i) {
case 1:
rt.setTranslateZ(100);
break;
case 2:
rt.getTransforms().add(new Rotate(270, 50,50,0,Rotate.X_AXIS));
rt.setTranslateZ(100*0.5);
rt.setHeight(100);
rt.setTranslateY(100*0.5);
break;
case 3:
rt.setTranslateZ(100*0.5);
rt.getTransforms().add(new Rotate(90, 50, 50, 0, Rotate.Y_AXIS));
rt.setWidth(100);
rt.setTranslateX(-(100*0.5-1));
break;
case 4: …Run Code Online (Sandbox Code Playgroud)