gpt4 book ai didi

JavaFx即时显示图像

转载 作者:行者123 更新时间:2023-12-01 11:45:23 24 4
gpt4 key购买 nike

我正在制作内存卡游戏。

我希望能够捕获 2 次点击,显示它们,然后比较它们。

我试图实现这一目标,但它没有按照我想要的方式工作。我编写的代码等待两次点击,显示第一张卡,而第二张卡永远不会显示,因为当它有两张卡时它会立即比较它们,如果它们不相同,它将删除两张卡。

  EventHandler<MouseEvent> keyEventHandler =
new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
clickedCards(event);
if (klickade.size() == 2) {
boolean isSame = CardsAreSame();
if (isSame) {
firstMemoryCard.setPair(Boolean.TRUE);
secoundMemoryCard.setPair(Boolean.TRUE);
klickade.clear();
} else {
firstMemoryCard.setGraphic(firstMemoryCard.getImagEFaceDown());
secoundMemoryCard.setGraphic(secoundMemoryCard.getImagEFaceDown());
klickade.clear();
}
}
}
};

public void clickedCards(MouseEvent event) {
MemoryCard memoryCard = (MemoryCard) event.getSource();
klickade.add(memoryCard);
memoryCard.setGraphic(memoryCard.getImageFaceUp());

System.out.println(klickade.size());
}

最佳答案

我认为您只是在问如何在显示用户猜测的结果之前在代码中添加延迟。

最简单的方法是使用 PauseTransition :

if (klickade.size() == 2) {
PauseTransition pause = new PauseTransition(Duration.seconds(1));
pause.setOnFinished(event -> {
boolean isSame = CardsAreSame();
if (isSame) {
firstMemoryCard.setPair(Boolean.TRUE);
secoundMemoryCard.setPair(Boolean.TRUE);
klickade.clear();
} else {
firstMemoryCard.setGraphic(firstMemoryCard.getImagEFaceDown());
secoundMemoryCard.setGraphic(secoundMemoryCard.getImagEFaceDown());
klickade.clear();
}
});
pause.play();
}

关于JavaFx即时显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29181735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com