252 lines
7.1 KiB
C
252 lines
7.1 KiB
C
|
|
#pragma once
|
|||
|
|
#include "cocos2d.h"
|
|||
|
|
#include "cocostudio/CocoStudio.h"
|
|||
|
|
#include "ui/CocosGUI.h"
|
|||
|
|
|
|||
|
|
#include "Singleton.h"
|
|||
|
|
#include "GameFrameBase.h"
|
|||
|
|
#include "PlatformHeader.h"
|
|||
|
|
#include "PDK_Player.h"
|
|||
|
|
#include "PDK_GameLogic.h"
|
|||
|
|
#include "PDK_CMD.h"
|
|||
|
|
#include "PDK_HandCardLayer.h"
|
|||
|
|
#include "PDK_GameEndNode.h"
|
|||
|
|
#include "PDK_PrivateEndNode.h"
|
|||
|
|
|
|||
|
|
USING_NS_CC;
|
|||
|
|
using namespace cocostudio;
|
|||
|
|
using namespace std;
|
|||
|
|
using namespace ui;
|
|||
|
|
|
|||
|
|
namespace PDK_SPACE{
|
|||
|
|
|
|||
|
|
class PDKGameScene :public GameFrameBase
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>ID;
|
|||
|
|
//const static int KIND_ID = 210;
|
|||
|
|
static std::string getGameRule(uint32 dwGameRule);
|
|||
|
|
static int getRealChairCount(uint32 dwGameRule);
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
CREATE_FUNC(PDKGameScene);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>;
|
|||
|
|
virtual bool init();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻص<C9BB>;
|
|||
|
|
virtual void onEnterTransitionDidFinish();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>;
|
|||
|
|
virtual void onExit();
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD>ͼת<CDBC><D7AA>;
|
|||
|
|
virtual WORD SwitchViewChairID(WORD wChairID);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ;
|
|||
|
|
virtual void upSelfPlayerInfo();
|
|||
|
|
|
|||
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
void initScene();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ;
|
|||
|
|
void initNet();
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ó<EFBFBD><C3B3><EFBFBD>;
|
|||
|
|
void resetScene(bool bAll=false);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
void resetData();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
void ResetAllData();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>൱<EFBFBD><E0B5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뿪);
|
|||
|
|
virtual void ResetTable();
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7>;
|
|||
|
|
virtual const std::string getShortChatSoundPath(uint8 cbGender, int nIndex);
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ;
|
|||
|
|
virtual bool OnEventSceneMessage(uint8 cbGameStatus, bool bLookonUser, void* pData, int nDataSize);
|
|||
|
|
|
|||
|
|
//<2F>ָ<EFBFBD><D6B8><EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
|
|||
|
|
bool onGameScenePlay(void* pData, int nDataSize);
|
|||
|
|
//<2F>ָ<EFBFBD><D6B8>зֳ<D0B7><D6B3><EFBFBD>;
|
|||
|
|
bool onGameSceneCall(void* pData, int nDataSize);
|
|||
|
|
//<2F>ָ<EFBFBD><D6B8>ձճ<D5B1><D5B3><EFBFBD>;
|
|||
|
|
bool onGameSceneFree(void* pData, int nDataSize);
|
|||
|
|
//<2F>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>;
|
|||
|
|
bool onGameSceneSend(void* pData, int nDataSize);
|
|||
|
|
|
|||
|
|
//<2F><>Ϸ<EFBFBD><CFB7>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>;
|
|||
|
|
|
|||
|
|
//<2F><>Ϸ<EFBFBD><CFB7>ʼ;
|
|||
|
|
void onSubGameStart(const void * pBuffer, uint16 wDataSize);
|
|||
|
|
//<2F><><EFBFBD>ҽз<D2BD>;
|
|||
|
|
void onSubGameCallScore(const void * pBuffer, uint16 wDataSize);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ;
|
|||
|
|
void onSubGameBankerInfo(const void * pBuffer, uint16 wDataSize);
|
|||
|
|
//<2F><><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD>;
|
|||
|
|
void onSubGameOutCard(const void * pBuffer, uint16 wDataSize);
|
|||
|
|
//<2F><><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD>;
|
|||
|
|
void onSubGamePassCard(const void * pBuffer, uint16 wDataSize);
|
|||
|
|
//<2F><><EFBFBD>û<EFBFBD><C3BB><EFBFBD>;
|
|||
|
|
void onSubGameSetBaseScore(const void * pBuffer, uint16 wDataSize);
|
|||
|
|
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
|
|||
|
|
void onSubGameEnd(const void * pBuffer, uint16 wDataSize);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>й<EFBFBD>;
|
|||
|
|
void onSubGameTrustee(const void * pBuffer, uint16 wDataSize);
|
|||
|
|
//<2F><>ʼ<EFBFBD>з<EFBFBD>;
|
|||
|
|
void onSubGameStartScore(const void * pBuffer, uint16 wDataSize);
|
|||
|
|
|
|||
|
|
//<2F>з<EFBFBD><D0B7><EFBFBD>Ϣ;
|
|||
|
|
void SendCallScore(bool bCallScore);
|
|||
|
|
|
|||
|
|
//<2F><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>;
|
|||
|
|
void onButtonTipClick(Ref*);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>½зְ<D0B7>ť;
|
|||
|
|
void updateCallButtons();
|
|||
|
|
//<2F><><EFBFBD>°<EFBFBD>ť״̬;
|
|||
|
|
void updateButtonsStatus(uint16 wCurChairID, uint8 cbLeftSeconds, bool bTurnOver = false);
|
|||
|
|
//<2F><><EFBFBD>س<EFBFBD><D8B3>ư<EFBFBD>ť;
|
|||
|
|
void hideOutCardButtons();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ư<EFBFBD>ť;
|
|||
|
|
void checkOutCardButton();
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>;
|
|||
|
|
void moveSendCardSprite(Sprite* pCardSprite, uint16 wViewID, float fDelayTime);
|
|||
|
|
//ѡ<>ƻص<C6BB>;
|
|||
|
|
void selectCardCallback(uint8* pCardData, uint8 cbCardCount);
|
|||
|
|
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>;
|
|||
|
|
void drawBackCardData();
|
|||
|
|
//<2F><>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>;
|
|||
|
|
void flipBackCard();
|
|||
|
|
//<2F><><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD>;
|
|||
|
|
void playAnimate(uint8 cbCardType, uint16 wFromChair, uint16 wToChair);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
void playSoundEffect(const uint8 cbCardType, uint8 cbSex = 1, const uint8 cbData = 0);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD>;
|
|||
|
|
virtual void OnEventUserEnter(GamePlayer * pPlayer);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>״̬<D7B4>ı<EFBFBD>;
|
|||
|
|
virtual void OnEventUserStatus(GamePlayer * pPlayer);
|
|||
|
|
//<2F><><EFBFBD>ҽ<EFBFBD><D2BD>Ҹı<D2B8>;
|
|||
|
|
virtual void OnUserScore(GamePlayer* pPlayer);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
virtual Vec2 GetPlayerPosByUserID(uint32 dwUserID);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
virtual GamePlayer* CreatePlayer(IClientUserItem * pIClientUserItem);
|
|||
|
|
|
|||
|
|
// ͬIP<49>ж<EFBFBD>;
|
|||
|
|
virtual void IsSameIp();
|
|||
|
|
|
|||
|
|
// <20><>ȡ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>Ӻ<EFBFBD>;
|
|||
|
|
uint16 getNextChairID(WORD wChairID);
|
|||
|
|
|
|||
|
|
void SetChairs();
|
|||
|
|
|
|||
|
|
//˽<>˳<EFBFBD>;
|
|||
|
|
public:
|
|||
|
|
//˽<>˳<EFBFBD><CBB3><EFBFBD>Ϣ;
|
|||
|
|
virtual void OnSocketSubPrivateRoomInfo(CMD_GF_Private_Room_Info* pNetInfo);
|
|||
|
|
//˽<>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
virtual void OnSocketSubPrivateEnd(void* data, int dataSize);
|
|||
|
|
//˽<>˳<EFBFBD><CBB3><EFBFBD>ɢ<EFBFBD><C9A2>Ϣ;
|
|||
|
|
virtual void OnSocketSubPrivateDismissInfo(CMD_GF_Private_Dismiss_Info* pNetInfo);
|
|||
|
|
//˽<>˳<EFBFBD><CBB3><EFBFBD>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD>;
|
|||
|
|
virtual void OnSocketSubPrivateDismissResult(CMD_GF_Private_Dismiss_Result* pNetInfo);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬;
|
|||
|
|
virtual void OnSocketSubPrivateAutoUserStatus(tagAutoUserStatus* pNetInfo){}
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual void OnSocketSubPrivateAutoUserReady(CMD_GR_Private_ReadyInfo* pNetInfo){}
|
|||
|
|
|
|||
|
|
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ;
|
|||
|
|
void onEventShowPrivate(cocos2d::EventCustom *event);
|
|||
|
|
|
|||
|
|
//<2F><>ס<EFBFBD><D7A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ť;
|
|||
|
|
void OnButtonVoiceTouched(Ref*, Widget::TouchEventType);
|
|||
|
|
|
|||
|
|
//¼<><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
public:
|
|||
|
|
virtual void StartGameRecord();
|
|||
|
|
virtual void NextRecordAction(float dt);
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
uint8 m_cbGameStatus; //<2F><>Ϸ״̬;
|
|||
|
|
uint32 m_dwRoomID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
bool m_aryActiveStatus[PDK_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬;
|
|||
|
|
|
|||
|
|
//˽<>˳<EFBFBD><CBB3><EFBFBD>Ϣ;
|
|||
|
|
CMD_GF_Private_Room_Info m_PrivateRoomInfo;
|
|||
|
|
|
|||
|
|
Button* m_btnDismissRoom; //<2F><>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD>;
|
|||
|
|
Button* m_btnWeiXin; //<>ŷ<EFBFBD><C5B7><EFBFBD>;
|
|||
|
|
|
|||
|
|
Text* m_txtPrivateRoomID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
Text* m_txtPrivatePlayCount; //<2F><><EFBFBD><EFBFBD>;
|
|||
|
|
Text* m_txtCompareDesc; //<2F><><EFBFBD><EFBFBD>;
|
|||
|
|
|
|||
|
|
Node* m_pVoiceNode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־;
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>
|
|||
|
|
Node* m_rootNode; //<2F><><EFBFBD><EFBFBD>;
|
|||
|
|
Button* m_pBtnLeave; //<2F>뿪<EFBFBD><EBBFAA><EFBFBD><EFBFBD>;
|
|||
|
|
PDKPlayer* m_aryPlayer[PDK_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>;
|
|||
|
|
PDKPlayer* m_pLocalPlayer;
|
|||
|
|
|
|||
|
|
Button* m_pAryBtnCall; //<2F>зְ<D0B7>ť;
|
|||
|
|
Button* m_pBtnNoCall; //<2F><><EFBFBD>а<EFBFBD>ť;
|
|||
|
|
|
|||
|
|
Button* m_pBtnReady; //<><D7BC><EFBFBD><EFBFBD>ť;
|
|||
|
|
Button* m_pBtnPass; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ť;
|
|||
|
|
Button* m_pBtnTips; //<2F><>ʾ<EFBFBD><CABE>ť;
|
|||
|
|
Button* m_pBtnOutCard; //<2F><><EFBFBD>ư<EFBFBD>ť;
|
|||
|
|
|
|||
|
|
Sprite* m_pSprTips; //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>;
|
|||
|
|
|
|||
|
|
uint8 m_cbTimeOutCard; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>;
|
|||
|
|
uint8 m_cbTimeCallScore; //<2F>з<EFBFBD>ʱ<EFBFBD><CAB1>;
|
|||
|
|
uint8 m_cbTimeStartGame; //<2F><>ʼʱ<CABC><CAB1>;
|
|||
|
|
uint8 m_cbTimeHeadOutCard; //<2F>״γ<D7B4><CEB3><EFBFBD>ʱ<EFBFBD><CAB1>;
|
|||
|
|
|
|||
|
|
uint8 m_cbBombCount; //ը<><D5A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
uint8 m_cbCallScore; //<2F>з<EFBFBD>;
|
|||
|
|
//int m_nCellScore; //<2F><><EFBFBD><EFBFBD>;
|
|||
|
|
|
|||
|
|
uint16 m_wTurnWiner; //ʤ<><CAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
uint8 m_cbTurnCardCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ;
|
|||
|
|
uint8 m_cbTurnCardData[PDK_MAX_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
|
|||
|
|
uint16 m_wLastWiner; //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
uint8 m_cbLastCardCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ;
|
|||
|
|
uint8 m_cbLastCardData[PDK_MAX_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
|
|||
|
|
bool m_bGameStart; //<2F><>Ϸ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ʼ;
|
|||
|
|
uint16 m_wLandChairID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>;
|
|||
|
|
uint16 m_wCurChairID; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>;
|
|||
|
|
uint8 m_cbMustOutCard; //<2F>س<EFBFBD><D8B3><EFBFBD>;
|
|||
|
|
|
|||
|
|
uint8 m_aryHandCardData[PDK_MAX_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD>;
|
|||
|
|
uint8 m_arySendCardCount[PDK_GAME_PLAYER]; //ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
uint8 m_aryHandCardCount[PDK_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
uint8 m_aryAllHandCardData[PDK_GAME_PLAYER][PDK_MAX_COUNT];
|
|||
|
|
|
|||
|
|
std::string m_strGameRuleInfo;
|
|||
|
|
|
|||
|
|
CPDKGameLogic m_GameLogic;
|
|||
|
|
PDKGameEndNode* m_pResultLayer; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
PDKPrivateEndNode* m_pPrivateScene; // ˽<>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
PDKHandCardLayer* m_pHandCardLayer; // <20><><EFBFBD>ƿؼ<C6BF>;
|
|||
|
|
|
|||
|
|
// localZOrder <20>㼶
|
|||
|
|
enum ZOrder
|
|||
|
|
{
|
|||
|
|
ZO_DEFAULT = 0, // Ĭ<><C4AC>
|
|||
|
|
ZO_CARDMANAGER, // <20>齫<EFBFBD><E9BDAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
ZO_UPDOWN, // <20><><EFBFBD>·<EFBFBD>
|
|||
|
|
ZO_ANI, // <20><><EFBFBD><EFBFBD>
|
|||
|
|
ZO_TRUSTEE, // <20>й<EFBFBD>
|
|||
|
|
ZO_END, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
ZO_PRIVATE, // ˽<>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
}
|