保持配对面朝上的记忆游戏错误。我的代码有什么问题?

Memory game error with keeping matched pairs face up. what's wrong with my code?

我正在编写记忆消除游戏。单击一张卡片,它将正面朝上。点击第二张牌,它也会翻到正面。如果两张牌匹配,它们就会消失。如果不匹配,它们将保持面朝下。

我的程序:如果你点击第一张卡片,它会变成正面朝上,没问题。但是如果你点击第二张牌,它不会翻到正面。

public void onMouseClicked(TileUIController eventController, TileUIController matchedController, MouseEvent event, GameUI gameUI) {
    if (displayCard1 == null || displayCard2 == null) {//只翻起一张牌,或未翻起牌

        if (displayCard1 == null) {//未翻起牌 there is no card has been clicked
            displayCard1 = eventController;
        } else {//翻起了一张牌//there is already one card has been clicked
            if (displayCard1.equals(eventController)) {//是同一张牌被点击,不做任何处理if is the same card to be clicked
                return;
            }
            displayCard2 = eventController;
        }
        hitSound.play();
        faceUp(eventController);//make card to be face up

    }


    //两张牌都被翻起if there are already tow cards,check if they match
    if (displayCard1 != null && displayCard2 != null) {
        boolean isMatch = isMatch(displayCard1, displayCard2, event);
        if(isMatch){
           disappearTwoCards(displayCard1,displayCard2);
        }else{
           faceDownTwoCards(displayCard1,displayCard2);
        }
    }
}

private void faceUp(TileUIController controller) {

    controller.getImageView().setImage(new Image("upImage"));

}
private void faceDown(TileUIController controller) {
    //将image设置为cardback,感觉像翻过去了
    controller.getImageView().setImage(new Image("backImage"));

}

为什么只有第一张牌正面朝上?第二张牌不会正面朝上。

(我的英文太烂了,抱歉谢谢大家!)

当点击第2张卡片时,由于isMatch=false,它是正面朝上的,但紧接着又是正面朝下的,所以你无法观察到中间的正面朝上。

面向上和向下之间的动画应该有一些延迟。使用 Thread.sleep 不是一个选项,因为它会延迟当前线程,即 JavaFX 主线程 ui,因此您将无法观察到 gui 的变化(朝上)期间。