我正在使用java编写一个Memory游戏,我希望在翻转所有卡后,使用sprites文件夹中的图像制作一个GameOver-Screen(我已经拥有了它的图像,并且它是带有.jpg的图像)。因此,当所有牌都被翻转时,游戏实际上已经结束,并且会出现这个GameOver-Screen。我不知道我怎么能这样做。我唯一知道的是它应该以{{1}}开头。也许可以用“if()”制作一些东西,在括号之间你可以说条件是所有的牌都被翻转了。
public void gameOver(){
答案 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,所以我不能具体告诉你如何做到这一点。但至少使用此代码,您应该能够触发游戏。