一旦满足条件,方法就不会执行

时间:2014-04-07 05:43:40

标签: java android android-imageview

这是我第一次在这里发布一个问题,所以我不太确定这是不是它的工作方式,但是现在就这样了。

我正在修改我遇到的特定代码,用于卡牌游戏,经销商向四名玩家交出五张牌。那部分代码是可靠的。问题是在发牌后,经销商然后在牌组上休息并翻转一张牌。出于某种原因,周转卡要么从头开始(意味着它是卡实际发出之前的第一张牌),要么根本没有,即使条件明显满足。我在我的智慧结束,并希望得到一些指导。我经常多次参加这个论坛并且帮了很多忙。希望你能再次帮助和帮助我。感谢您的时间和耐心。

这是特定的代码。

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();
    }
}

0 个答案:

没有答案