Files
wnmj/Classes/Games/SparrowBase/SparrowCard.h

82 lines
2.3 KiB
C
Raw Normal View History

2026-02-13 14:34:15 +08:00
#pragma once
#include "cocos2d.h"
#include "ui/CocosGUI.h"
#include "Define.h"
#include "SparrowCardBase.h"
#include "Types.h"
USING_NS_CC;
using namespace ui;
using namespace std;
//<2F>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD>
#define SP_MASK_COLOR 0xF0 //<2F><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
#define SP_MASK_VALUE 0x0F //<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
#define SENDCARD_HEIGHT 130 //<2F>϶<EFBFBD><CFB6><EFBFBD><EFBFBD>Ƹ߶<C6B8>
#define TOP_CARD_HEIGHT 20 //<2F><><EFBFBD><EFBFBD><EFBFBD>Ƹ߶<C6B8>
//////////////////////////////////////////////////////////////////////////
// <20><EFBFBD>ؼ<EFBFBD>
class SparrowCard : public Sprite
{
public:
SparrowCard();
virtual bool init(BYTE _value, EN_SPARROW_TYPE _cardType);
// <20><><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>ص<EFBFBD>
virtual void onExit();
void addClickEventListener(const std::function<bool(cocos2d::Ref *, Vec2 pos)>);
// <20><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>
public:
virtual bool IsValidCard(BYTE _value) = 0; // <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>
// <20><EFBFBD><E9BDAB><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
public:
static std::string GetCardValuePng(BYTE _value); // <20><>ȡֵͼƬ
void SetCardValuePng(BYTE _value, EN_SPARROW_TYPE _cardType); // <20><><EFBFBD><EFBFBD><EFBFBD>齫ֵ
bool ShowCardValue(BYTE _value); // <20><><EFBFBD><EFBFBD>
void SetTingCardStatus(bool isTing); // <20><><EFBFBD><EFBFBD>״̬
void SetKingStatus(bool isKing, std::string strKing); // <20><><EFBFBD>þ<EFBFBD><C3BE><EFBFBD>
void SetTop(bool istop); // <20><><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>
void SetCurrentOutCard(bool isCurrent); // <20><><EFBFBD>õ<EFBFBD>ǰ<EFBFBD>Ʊ<EFBFBD>ʶ
//<2F><><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
public:
void BindingTouchEvent();
bool TouchBegan(Touch* touch, Event* event);
void TouchMove(Touch* touch, Event* event);
void TouchEnd(Touch* touch, Event* event);
void setTouchState(bool _btouch){ m_bTouch = _btouch; }
bool getTouchState(){ return m_bTouch; }
// <20><>ȡ<EFBFBD><C8A1>ֵ
public:
BYTE GetCardData() { return m_ValueData; }
EN_SPARROW_TYPE GetCardType(){ return m_CardType; }
static BYTE GetCardValue(BYTE cbCardData) { return (cbCardData&SP_MASK_VALUE); } //<2F><>ȡ<EFBFBD><C8A1>ֵ
static BYTE GetCardColor(BYTE cbCardData) { return ((cbCardData&SP_MASK_COLOR) >> 4); } //<2F><>ȡ<EFBFBD><C8A1>ɫ
bool GetTop(){ return m_IsTop; }
public:
ImageView* m_pRootImage; // <20><><EFBFBD>ڵ<EFBFBD>
BYTE m_ValueData; // <20><EFBFBD><E9BDAB>ֵ
EN_SPARROW_TYPE m_CardType; // <20><EFBFBD><E9BDAB><EFBFBD><EFBFBD>
bool m_IsTop; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ
ImageView* m_cloneCardImg; //copy<70><79><EFBFBD><EFBFBD><EFBFBD>c
private:
Vec2 m_originalPos; //<2F><><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>λ<EFBFBD><CEBB>
Vec2 m_MovePos; //<2F>ƶ<EFBFBD>λ<EFBFBD><CEBB>
int m_startZorder; //<2F><>ʼzorderֵ
bool m_bTouch; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
std::function<bool(cocos2d::Ref *, Vec2 pos)> _SendCardCallBack; //<2F>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD>
};