这是我第一次在这里发布一个问题,所以我不太确定这是不是它的工作方式,但是现在就这样了。
我正在修改我遇到的特定代码,用于卡牌游戏,经销商向四名玩家交出五张牌。那部分代码是可靠的。问题是在发牌后,经销商然后在牌组上休息并翻转一张牌。出于某种原因,周转卡要么从头开始(意味着它是卡实际发出之前的第一张牌),要么根本没有,即使条件明显满足。我在我的智慧结束,并希望得到一些指导。我经常多次参加这个论坛并且帮了很多忙。希望你能再次帮助和帮助我。感谢您的时间和耐心。
这是特定的代码。
protected void dealCards() {
int startOffset = 0;
SoundManager.getInstance(this).playSound(R.raw.shuffle1);
//5 Cards for each player
for (int i=0; i < AppData.NCards; i++) {
for (Hand hand : appData.getPlayInOrder()) {
hand.addCard(appData.getDeck().popTopCard());
//animation
int[] handLocation = {0, 0};
hand.getContainer().getLocationInWindow(handLocation);
Log.e("COOR", "Hand: [" + handLocation[0] + "," + handLocation[1] + "]");
int[] deckLocation = {0,0};
deck.getLocationInWindow(deckLocation);
Log.e("COOR", "Deck: [" + deckLocation[0] + "," + deckLocation[1] + "]");
//move from deck location to hand location
TranslateAnimation dealCardAnimation = new TranslateAnimation(Animation.ABSOLUTE, deckLocation[0],
Animation.ABSOLUTE, handLocation[0],
Animation.ABSOLUTE, deckLocation[1],
Animation.ABSOLUTE, handLocation[1]);
dealCardAnimation.setDuration(400);
dealCardAnimation.setStartOffset(600 * startOffset++);
//end
hand.getCardsViews()[i].startAnimation(dealCardAnimation);
redrawHand(hand);
}
}
if (startOffset == 5) {
flipUpCard();
}
}