我正在制作一个二十一点游戏,我创建了一个时间线,每隔1秒向经销商发牌,以模拟发卡。问题是当这个时间轴运行时,我的其余代码继续运行。我需要我的程序等到时间线完全继续之前。
这是我的时间表:
Timeline timeline = new Timeline();
KeyFrame keyFrame = new KeyFrame(Duration.millis(1000), event -> {
if(dealer.getScore() >= 17 && (dealer.getScore() >= player.getScore() || dealer.getScore() > 21)) {
timeline.stop();
} else {
newCard(dealer, mainDeck.deal(), false);
System.out.println("Running Here!");
LBLDeck.setText(String.valueOf(mainDeck.getRemaingCards()) + " cards remaining");
}
});
timeline.getKeyFrames().add(keyFrame);
timeline.setCycleCount(Animation.INDEFINITE);
timeline.play();
答案 0 :(得分:0)
尝试使用CountDownLatch - 请参阅此处的文档:https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CountDownLatch.html