82 lines
2.3 KiB
C
82 lines
2.3 KiB
C
|
|
#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>
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
|