本当にシンプルなカードゲームをデザインしようとしています。機能は基本的に、カードをタップするだけで順番にカードを見つけることです。これを行うには、カードを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];
}