我正在尝试设计一个非常简单的纸牌游戏。该功能基本上包括发现卡片以便仅点击它们。为此,我将卡片放在 UIView 上,然后在其他 UIView 上覆盖我捕获点击的位置。然后我只是计算出哪张牌被轻拍了,然后我把它翻过来。
问题是,如果我点击了一张错误的卡片,这个点击似乎会保留在一种缓冲区中,当我点击另一张卡片时,有时之前点击的卡片会在没有被点击的情况下翻转。这个缓冲区是真的还是我做错了什么?如果这个缓冲区是真实的,我如何在每次捕获新的点击时删除它的内容?
提前致谢。
问题解决了:)
这是问题所在的代码部分,在点击卡片和检查它是否是国王之间。
[...] 这里有一些代码 [...]
// And if what we have found is a king, then we uncover the next card in the game stack and .
if ([[gameWindow.deck getCardAtIndex:gameWindow.lastIndex] cardValue] == 9) {
//[self uncoverTheNextCardToPlay];
do {
[self uncoverTheNextCardToPlay];
} while ([[gameWindow.deck getCardAtIndex:gameWindow.lastIndex] cardValue] == 9 && gameWindow.lastIndex < 40);
}
// And we update the realIndex with the real index index of the card just uncovered.
gameWindow.realIndex = ([[gameWindow.deck getCardAtIndex:gameWindow.lastIndex] cardSuit]*10)+[[gameWindow.deck getCardAtIndex:gameWindow.lastIndex] cardValue];
[...] 更多代码在这里 [...]
- (void)uncoverTheNextCardToPlay
{
gameWindow.lastIndex = gameWindow.lastIndex+10;
[[gameWindow.deck getCardAtIndex:gameWindow.lastIndex] setCover:NO];
[[gameWindow.deck getCardAtIndex:gameWindow.lastIndex] refreshCardWithCardBack:gameWindow.cardBack];
gameWindow.realIndex = ([[gameWindow.deck getCardAtIndex:gameWindow.lastIndex] cardSuit]*10)+[[gameWindow.deck getCardAtIndex:gameWindow.lastIndex] cardValue];
}