1

我正在尝试设计一个非常简单的纸牌游戏。该功能基本上包括发现卡片以便仅点击它们。为此,我将卡片放在 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];
}
4

0 回答 0