Files
wnmj-normal/Classes/Games/13S/13S_OperateCardPanel.h
2026-03-03 13:56:44 +08:00

78 lines
2.1 KiB
C++

#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<void(uint8*, uint8)>& fnCallback);
//初始化;
virtual bool init(Size csParentSize, const std::function<void(uint8*, uint8)>& 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<void(uint8*, uint8)>& 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<void(uint8*, uint8)> _fnChooseCard;
//手牌扑克数组;
std::vector<SSSBigCardSprite *> _vecHandCardArray;
};
#endif