我有一个纸牌游戏,它使用编程设置的 GridView ,并将自定义 ArrayAdapter 连接到一系列“卡片”,以便在通过{{ 1}}。我需要知道所有卡片何时完成翻转,以便游戏可以再次处理或者如果需要根据卡片的当前状态执行其他操作。这必须发生在当前翻转的最后一个动画之后(我已经知道了卡片的状态,但我想在翻转卡片之后以及在用户可以进行任何更改之前“按顺序”处理或执行其他操作到屏幕)。我知道我可以计算和设置状态的全局变量和/或轮询,但我希望能够以“正确”的方式执行它 - 如果有比全局计数/轮询更好的方法。我无法弄清楚如何做得更好。建议赞赏!
答案 0 :(得分:1)
如果你想在游戏中追踪卡片的详细状态,我建议你为每张卡片设置一个对象。
public class Card {
public enum CardState {
CARD_FACE, CARD_FLIPPING, CARD_BACK
}
private CardState cardState;
//other card object variables
public Card(){
cardState = CardState.CARD_BACK;
//other card object variables default status
}
public CardState getCardState() {
return cardState;
}
public void setCardState(CardState cardState) {
this.cardState = cardState;
}
//other getters and setters
}
使用数组存储游戏控制器中的所有卡片对象。通过检查数组,您可以确定下一个操作。