【发布时间】:2018-02-01 13:52:15
【问题描述】:
我一直在编写俄罗斯方块游戏,试图学习 Java 和 JavaFX。 当我第一次从方法开始调用该方法时,它运行良好,当我从线程调用它时,它仅部分运行,并且不向窗格添加新节点。
Here是代码的一部分,你可以在里面完整查看
@Override
public void start(Stage stage) {
...
stage.show();
newPieces();
}
public void newPieces() {
Pieces pieces = new Pieces();
piece = pieces.createPiece();
nextPiece = pieces.createPiece();
boolean add1 = vbox.getChildren().add(nextPiece);
boolean add2 = pane.getChildren().add(piece);
translateDown(piece);
}
public void translateDown(Group piece) {
scheduler.scheduleWithFixedDelay(new Runnable() {
@Override
public void run() {
boolean translate = piece.getTransforms().add(new Translate(0, 25));
...
...
newPieces();
scheduler.shutdown();
...
...
}, 0, 1, TimeUnit.SECONDS);
newPieces 方法创建一个矩形组。
谢谢!
【问题讨论】:
-
我试图用这段代码做的是生成一个新的俄罗斯方块块并将其翻译到窗格底部。
标签: java multithreading javafx