GameOver用于Java内存游戏的屏幕

时间:2018-03-06 18:17:30

标签: java

我正在使用java编写一个Memory游戏,我希望在翻转所有卡后,使用sprites文件夹中的图像制作一个GameOver-Screen(我已经拥有了它的图像,并且它是带有.jpg的图像)。因此,当所有牌都被翻转时,游戏实际上已经结束,并且会出现这个GameOver-Screen。我不知道我怎么能这样做。我唯一知道的是它应该以{{1​​}}开头。也许可以用“if()”制作一些东西,在括号之间你可以说条件是所有的牌都被翻转了。

public void gameOver(){

1 个答案:

答案 0 :(得分:0)

每次翻转卡片时,请检查所有卡片是否已翻转。使用循环 - 您的代码中已经有一个循环。对于for循环中的每个索引...即每张卡...检查getIdVisible()是否为0。

如果索引i处的卡仍然隐藏,则返回null并继续运行程序是正常的。但是,如果你完全通过循环,这意味着所有的牌都是可见的,这意味着你可以调用gameOver()方法,该方法在屏幕上显示游戏。

这听起来是否适合您的计划?

编辑:

要检查是否所有卡都被翻转,您可以做的一件事就是将MemeryCard []卡(在构造函数中)设置为全局变量。然后,每次显示两张牌时,您都可以调用此方法:

public boolean areAllCardsFlipped() {

    // Start looking through each card
    for (int i = 0; i < 36; i++) {

        // We found a card that is NOT flipped. Stop here, because clearly all cards are not flipped.
        if (cards[i].getIdVisible() != 0) {
            return false;
        }
    }

    // We have looked at all cards, and we know that each one is flipped. We can return true.
    return true;
}

我想在为mouseEvent()返回true之前在mouseEvent()中调用此方法,如果返回true,则可以调用gameOver()方法。

至于如何处理渲染图像...我不知道你在这个游戏中使用的api,所以我不能具体告诉你如何做到这一点。但至少使用此代码,您应该能够触发游戏。