#ifndef _SSS_OperateCardPanel_H_ #define _SSS_OperateCardPanel_H_ #include "cocos2d.h" #include "ui/CocosGUI.h" #include "13S_BigCardSprite.h" class SSSOperateCardPanel : public LayerColor { public: //构造函数; SSSOperateCardPanel(); //析构函数; virtual ~SSSOperateCardPanel(); static SSSOperateCardPanel* create(Size csParentSize, const std::function& fnCallback); //初始化; virtual bool init(Size csParentSize, const std::function& fnCallback); //层进入; 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) { _fnChooseCard = fnCallback; } public: //初始数据; void initUIData(); //所有牌落下; void downAllCard(); //弹起指定牌; void shootCardData(uint8 cbCardData[SSS_MAX_COUNT], uint8 cbCardCount); //弹起指定索引; void shootCardIndex(uint8 cbCardIndex[SSS_MAX_COUNT], uint8 cbCardCount); //获取弹起的牌; void getShootCardData(uint8 aryOutCardData[SSS_MAX_COUNT], uint8 &cbOutCardCount, uint8 cbMaxOutCardCount); //获取未弹起的牌; void getDownCardData(uint8 aryOutCardData[SSS_MAX_COUNT], uint8 &cbOutCardCount, uint8 cbMaxOutCardCount); //显示牌; void showHandCard(uint8 cbCardData[SSS_MAX_COUNT], uint8 cbCardCount); //获取手牌间距; uint16 getHandCardSpace(uint8 cbCardCount); //获取手牌宽度; uint16 getHandCardWidth(uint8 cbCardCount); uint8 isInCardSpriteRect(Vec2 ptTouch); void onSelectCardAction(int iEndSelectIndex); bool isInSelectCardIndex(int iIndex, int iEndSelectIndex); uint8 getHandCardData(uint8 cbCardData[SSS_MAX_COUNT], uint8 cbCardCount); private: //开始选择索引; int _iBeginSelectIndex; //面板大小; Size _csParentSize; //选牌回调函数; std::function _fnChooseCard; //手牌扑克数组; std::vector _vecHandCardArray; }; #endif