90 lines
2.4 KiB
C
90 lines
2.4 KiB
C
|
|
|
|||
|
|
#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<void(uint8*, uint8)>& fnCallback, uint8 cbCardType = DZ_CARD_SPRITE_BIG);
|
|||
|
|
|
|||
|
|
virtual bool init(Size csParentSize, const std::function<void(uint8*, uint8)>& 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<void(uint8*, uint8)>& fnCallback) { _fnDoUserChooseCard = fnCallback; }
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>;
|
|||
|
|
void initUIData();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
void downAllCard();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>;
|
|||
|
|
void shootCardData(uint8 cbCardData[DZ_MAX_COUNT], uint8 cbCardCount);
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
void getShootCardData(uint8 cbCardData[DZ_MAX_COUNT], uint8 &cbCardCount);
|
|||
|
|
//<2F><><EFBFBD>ö<EFBFBD>ѡ;
|
|||
|
|
void setMultiSelect(bool bFlag) { _bMultiSelect = bFlag; }
|
|||
|
|
//<2F><><EFBFBD>ö<EFBFBD><C3B6><EFBFBD>;
|
|||
|
|
void setMultiRow(bool bFlag) { _bMultiRows = bFlag; }
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>;
|
|||
|
|
void setLordMode(bool bLordMode) { _bLordMode = bLordMode; }
|
|||
|
|
//<2F><><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
void addSendCard2Panel();
|
|||
|
|
//<2F><>ʾ<EFBFBD><CABE>;
|
|||
|
|
void redrawHandCard(uint8 cbCardData[DZ_MAX_COUNT], uint8 cbCardCount);
|
|||
|
|
////<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>;
|
|||
|
|
//void insertOneCard(uint8 cbCardData);
|
|||
|
|
|
|||
|
|
//ֻ<>ɵ<EFBFBD>ѡijЩ<C4B3><D0A9>;
|
|||
|
|
void setSelectCard(uint8 cbCardData);
|
|||
|
|
//<2F><>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
void canSelectAllCard();
|
|||
|
|
//<2F><><EFBFBD>ñ<EFBFBD>ѡ<EFBFBD><D1A1>;
|
|||
|
|
void setMustShootCard(uint8 cbCardData);
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD>;
|
|||
|
|
uint16 getHandCardSpace(uint8 cbCardCount);
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD>ƿ<EFBFBD><C6BF><EFBFBD>;
|
|||
|
|
uint16 getHandCardWidth(uint8 cbCardCount);
|
|||
|
|
|
|||
|
|
uint8 isInCardSpriteRect(Vec2 ptTouch);
|
|||
|
|
|
|||
|
|
void onSelectCardAction(int iEndSelectIndex);
|
|||
|
|
|
|||
|
|
bool isInSelectCardIndex(int iIndex, int iEndSelectIndex);
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
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<void(uint8*, uint8)> _fnDoUserChooseCard;
|
|||
|
|
std::vector<DZBaseCardSprite *> _vecHandCardArray; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#endif /* defined(__HandCardLayer__) */
|