淮安掼蛋源码之--选牌与出牌

原文:淮安掼蛋源码之--选牌与出牌

“掼蛋”一直是人们茶余饭后经久不衰的娱乐项目之一,淮安掼蛋 偶尔带点“彩头”(数额不大的钱财输赢)以增加刺激也是正常的事。本文介绍:淮安掼蛋源码之--选牌与出牌。

<1>选牌.

选牌结束,检查要出的牌,添加到出牌数组中.

void SeatUnit::checkSelCardEnd()
{
    CardGroup::MODE mode = _pCards->getMode();
    _ayToCards->removeAllObjects();
    CCArray *array;CCObject *pObj;
    if(mode==CardGroup::MODE_SINGLE){
        array = _pCards->getArray();
        CCARRAY_FOREACH(array, pObj){
            CardUnit *one = (CardUnit*)pObj;
            one->setSelColor(false);
            one->setSelAction();
            if(!one->getIsActivate())continue;
            _ayToCards->addObject(one);
        }
    }else{
        array = _pCards->getArray();
        CCARRAY_FOREACH(array, pObj){
            CardUnit *one = (CardUnit*)pObj;
            if(!one->getIsSel())continue;
            _ayToCards->addObject(one);    //被选中的牌加入到要出的牌的牌组中
        }
        //展开
        if(_ayToCards->count()>0){
            _pCards->expandCardSel();
            _isExpand = true;
        }
        
    }
    codeSelCard();
}


<2>出牌.

选完牌后,点击clickGo进行出牌,出牌分为2步,1是发送出牌信息4006给服务器,2是收到服务器回调信息4001后,在其回调函数cfDesk中,调用runShowCards,在runShowCards中调用my_play_a_card进行出牌.也就是将手牌移除掉自己选中的牌.

void SeatUnit::my_play_a_card() //出牌的具体实现(调用时机是收到clickGo回调信息后,出牌)
{
    if(_ayToCards->count()==0)return;
    CCPoint showPoint = _pCardShow->getPosition();
    CCObject *pObj;
    CCARRAY_FOREACH(_ayToCards, pObj){
        CardUnit *one = (CardUnit*)pObj;
        CCPoint point = one->getLocForSrc()-showPoint;
        _pCards->removeCard(one);
        one->getSprite()->setPosition(point);
        _pCardShow->addCard(one);
    }
    _pCardShow->tidyCard(1);
    _ayToCards->removeAllObjects();
    _pCards->reviseCardLoc();
    itCardGroup();
}


总结:出牌就是将自己手中要出的牌从手牌数组中删除,同时挪动到出牌数组中.但是并没有进行removeChild和addChild这些操作,所以要想好,出牌的过程是怎样的,变化的是数据的交换,要把握本质.


  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值