#ifndef __DZ_HandCardLayer__ #define __DZ_HandCardLayer__ #include "DZ_CMD.h" #include "CardDefine.h" #include "DZ_BaseCardSprite.h" class DZHandCardLayer : public LayerColor { public: DZHandCardLayer(); virtual ~DZHandCardLayer(); static DZHandCardLayer* create(Size csParentSize, const std::function& fnCallback, uint8 cbCardType = DZ_CARD_SPRITE_BIG); virtual bool init(Size csParentSize, const std::function& fnCallback, uint8 cbCardType = DZ_CARD_SPRITE_BIG); virtual void onEnter(); virtual void onExit(); virtual bool onTouchBegan(Touch *pTouch, Event *pEvent); virtual void onTouchEnded(Touch *pTouch, Event *pEvent); virtual void onTouchMoved(Touch *pTouch, Event *pEvent); void setChooseCardCallback(const std::function& fnCallback) { _fnDoUserChooseCard = fnCallback; } public: //初始数据; void initUIData(); //所有牌落下; void downAllCard(); //弹起指定牌; void shootCardData(uint8 cbCardData[DZ_MAX_COUNT], uint8 cbCardCount); //获取弹起的牌; void getShootCardData(uint8 cbCardData[DZ_MAX_COUNT], uint8 &cbCardCount); //设置多选; void setMultiSelect(bool bFlag) { _bMultiSelect = bFlag; } //设置多行; void setMultiRow(bool bFlag) { _bMultiRows = bFlag; } //设置地主; void setLordMode(bool bLordMode) { _bLordMode = bLordMode; } //发牌到面板; void addSendCard2Panel(); //显示牌; void redrawHandCard(uint8 cbCardData[DZ_MAX_COUNT], uint8 cbCardCount); ////插入扑克; //void insertOneCard(uint8 cbCardData); //只可点选某些牌; void setSelectCard(uint8 cbCardData); //可选所有牌; void canSelectAllCard(); //设置必选牌; void setMustShootCard(uint8 cbCardData); //获取手牌间距; uint16 getHandCardSpace(uint8 cbCardCount); //获取手牌宽度; uint16 getHandCardWidth(uint8 cbCardCount); uint8 isInCardSpriteRect(Vec2 ptTouch); void onSelectCardAction(int iEndSelectIndex); bool isInSelectCardIndex(int iIndex, int iEndSelectIndex); //获取手牌数量; int getHandCardCount(){ return _vecHandCardArray.size(); } private: uint8 _cbCardType; int _iSentCardCount; int _iBeginSelectIndex; bool _bLordMode; uint16 _iCardWidth; uint16 _iCardHeight; bool _bMultiSelect; bool _bMultiRows; Size _csParentSize; std::function _fnDoUserChooseCard; std::vector _vecHandCardArray; //手牌扑克数组 }; #endif /* defined(__HandCardLayer__) */