Files
wnmj-normal/Classes/Games/ZJH/ZJH_GameScene.h

325 lines
8.8 KiB
C
Raw Normal View History

2026-03-03 13:56:44 +08:00
#pragma once
#include "cocos2d.h"
#include "cocostudio/CocoStudio.h"
#include "cocostudio/CCArmature.h"
#include "ui/CocosGUI.h"
#include "GameFrameBase.h"
#include "PlatformHeader.h"
#include "ZJH_CMD.h"
#include "ZJH_GamePlayer.h"
#include "ZJH_GameLogic.h"
#include "ZJH_OpenResultScene.h"
#include "ZJH_ChipNode.h"
#define ZJH_OPERATE_PANEL 1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
#define ZJH_ADD_CHIP_PANEL 2 //<2F><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>;
USING_NS_CC;
using namespace cocostudio;
using namespace std;
using namespace ui;
namespace ZJH_SPACE {
class ZJHGameScene : public GameFrameBase
{
public:
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
CREATE_FUNC(ZJHGameScene);
static std::string getGameRule(uint32 dwGameRule);
//<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>ձճ<D5B1><D5B3><EFBFBD>;
bool onGameSceneFree(void* pData, int nDataSize);
//<2F><><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>;
bool onGameSceneSendCard(void* pData, int nDataSize);
//<2F><>Ϸ<EFBFBD>г<EFBFBD><D0B3><EFBFBD>;
bool onGameScenePlaying(void* pData, int nDataSize);
void initStatusFree(ZJHStatusBase* pStatusBase);
//<2F><>Ϸ<EFBFBD><CFB7>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>;
//<2F><>Ϸ<EFBFBD><CFB7>ʼ;
void onSubGameStart(const void * pBuffer, uint16 wDataSize);
//<2F><>ʼ<EFBFBD><CABC>ע;
void onSubStartChip(const void * pBuffer, uint16 wDataSize);
//<2F><><EFBFBD><EFBFBD>;
void onSubGiveUp(const void * pBuffer, uint16 wDataSize);
//<2F><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>;
void onSubUserChip(const void * pBuffer, uint16 wDataSize);
//<2F><><EFBFBD><EFBFBD>;
void onSubLookCard(const void * pBuffer, uint16 wDataSize);
//<2F><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>;
void onSubCompareCard(const void * pBuffer, uint16 wDataSize);
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
void onSubGameEnd(const void * pBuffer, uint16 wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ;
void onSubCheatCard(const void * pBuffer, uint16 wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>;
void procChipInfo(uint16 wLastViewID, ZJHChipInfo* pChipInfo);
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void procGameEnd(ZJH_CMD_S_GameEnd* pGameEnd);
//<2F><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>;
void compareCardEnd();
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><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);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ť;
void onGiveUpButtonClick(Ref* pSender);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ư<EFBFBD>ť;
void onCompareButtonClick(Ref* pSender);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>ť;
void onAddChipButtonClick(Ref* pSender);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>ť;
void onFollowButtonClick(Ref* pSender);
//<2F><><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ť;
void onAddCancelButtonClick(Ref* pSender);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>ť;
void onAddChipBtnsClick(Ref* pSender);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ư<EFBFBD>ť;
void onLookCardButtonClick(Ref* pSender);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>밴ť;
void onInviteButtonClick(Ref* pSender);
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>;
void startSendCardAni();
// <20><><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>;
void movementEventCallFunc(cocostudio::Armature *armature, cocostudio::MovementEventType movementType, const std::string& movementID);
// <20><><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD>;
float playSendCardAni();
// <20>ƶ<EFBFBD><C6B6>˿<EFBFBD>;
void moveSentCardSprite(Sprite* pCardSprite, uint16 wViewID, uint8 cbIndex,float fDelayTime);
// <20>ӳ<EFBFBD><D3B3><EFBFBD><EBB6AF>;
void playChipAni(uint16 wViewID, int nCount, bool bAction=true);
// <20><><EFBFBD>Ž<EFBFBD><C5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>;
void playResultScoreAni(int nIndex, SCORE lScore);
// <20><><EFBFBD><EFBFBD>ϲǮ<CFB2><C7AE><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>;
void playXiScoreAni(int nIndex, SCORE lScore);
// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void showOperatePanel(bool bShow, uint8 cbPanelType=0);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܳ<EFBFBD><DCB3><EFBFBD><EFBFBD><EFBFBD>;
void setTotalChipNumber(int nTotalNumber);
// <20><><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>ַ<EFBFBD><D6B7><EFBFBD>;
std::string getUserGender(int cbGender);
// <20><><EFBFBD>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void playSendCardEffect();
// <20><><EFBFBD>ſ<EFBFBD><C5BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void playFastVoice(int cbGender, int voiceIndex);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч;
void playEffect(std::string strPath);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч;
void playEffectEx(int cbGender, std::string strPath);
// <20><><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>Ч;
void playBtnClickEffect();
//<2F><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>;
void sendSendCardOverMsg();
//<2F><><EFBFBD>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD>Ϣ;
void sendOperateMsg(uint32 dwCode, int lData=0);
// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint8 getCurPlayerCount();
//˽<>˳<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);
void ShowGameRule(CMD_GF_Private_Room_Info* pNetInfo);
//¼<><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
public:
virtual void StartGameRecord(){};
virtual void NextRecordAction(float dt){};
private:
//˽<>˳<EFBFBD><CBB3><EFBFBD>Ϣ;
CMD_GF_Private_Room_Info m_PrivateRoomInfo;
uint32 m_dwRoomID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint32 m_dwPlayCout; //<2F><><EFBFBD><EFBFBD>;
Node* m_pVoiceNode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־;
uint8 m_cbGameStatus; //<2F><>Ϸ״̬;
uint16 _wCurrentUser; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>;
SCORE _lCellScore; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint16 _wOperTimeOut; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1>;
uint8 _cbCurRound; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>;
uint8 _cbMaxRound; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint8 _cbMinLookRound; //<2F><>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint32 _dwOperateCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint16 _wBankerUser; //ׯ<><D7AF><EFBFBD>û<EFBFBD>;
SCORE _lCurChipScore; //<2F><>ǰע<C7B0><D7A2>;
SCORE _lMaxChipScore; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע;
uint8 _aryGamingStatus[ZJH_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>״̬;
SCORE _aryUserChipScore[ZJH_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע;
SCORE _lTotalChipScore; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע;
uint8 _aryHandCardData[ZJH_MAX_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint16 _aryChairToViewID[ZJH_GAME_PLAYER]; //ʵ<><CAB5>λ<EFBFBD>ö<EFBFBD>Ӧ<EFBFBD><D3A6>ͼID;
bool _bHasShowLookCard; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>;
bool _bComparingCard; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD>;
bool _bGameEnd; //<2F><>Ϸ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>;
ZJH_CMD_S_CompareCard _cmdCompareCard; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>;
ZJH_CMD_S_GameEnd _cmdGameEnd; //<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
//<2F><><EFBFBD><EFBFBD>;
Node* m_rootNode; //<2F><><EFBFBD><EFBFBD>;
Layout* _MainPanel;
ImageView* _imgRoomInfo;
Layout* _RoundPanel;
Text* _txtRoomID;
Text* _txtJushu;
Text* _txtCompareRound; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>;
Text* _txtLookCardRound; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>;
Text* _txtOpenCardRound; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>;
Layout* _ChipPanel; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
Layout* _ButtonPanel;
Button* _btnInvite;
Button* _btnDismiss;
Button* _btnLeave; // <20><EFBFBD><EBBFAA>ť;
Button* _btnVoice;
Button* _btnChat;
Button* _btnStartGame;
Layout* _OperBtnsPanel;
Layout* _AddChipPanel;
ZJHOpenResultScene* _OpenResultScene;
Button* _btnGiveUp;
Button* _btnCompare;
Button* _btnAddChip;
Button* _btnFollow;
Button* _btnAddCancel;
Button* _aryAddChip[4];
Text* _txtCompareChip;
Text* _txtFollowChip;
Text* _txtTip;
ImageView* _imgAllChips;
Text* _txtAllChips;
Sprite* _sprSelectUserTip;
Layout* _ComparePanel;
Armature* _armCompare;
Sprite* _sprLeftHead;
Text* _txtLeftNickName;
Sprite* _sprLeftBackCard;
Sprite* _sprLeftFlag;
Armature* _armLeftLose;
Sprite* _sprRightHead;
Text* _txtRightNickName;
Sprite* _sprRightBackCard;
Sprite* _sprRightFlag;
Armature* _armRightLose;
Layout* _ResultPanel;
Button* _btnReady;
Button* _btnPrivateEnd;
Armature* _pArmatureResult; // ʤ<><CAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
TextAtlas* _pTxtResultScore[ZJH_GAME_PLAYER];
TextAtlas* _pTxtXiScore[ZJH_GAME_PLAYER];
ZJHGamePlayer* m_aryPlayer[ZJH_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>;
ZJHGamePlayer* m_pLocalPlayer;
std::string m_strGameRuleInfo;
Vec2 _ptSendCardPos; // <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>;
std::vector<tagZJHOpenResultItem> _aryResultItem;
std::vector<ZJHChipNode*> _aryChipNode;
CZJHGameLogic m_GameLogic;
// 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>;
};
};
}