Files
wnmj/Classes/Games/NiuNiu/NN_GameScene.h

316 lines
8.4 KiB
C
Raw Permalink Normal View History

2026-02-13 14:34:15 +08:00
#pragma once
#include "cocos2d.h"
#include "cocostudio/CocoStudio.h"
#include "cocostudio/CCArmature.h"
#include "ui/CocosGUI.h"
#include "Singleton.h"
#include "GameFrameBase.h"
#include "PlatformHeader.h"
#include "NN_GamePlayer.h"
#include "NN_GameLogic.h"
#include "NN_CMD.h"
#include "NN_PrivateEndNode.h"
USING_NS_CC;
using namespace cocostudio;
using namespace std;
using namespace ui;
namespace NiuNiu_SPACE{
enum NN_OPERATE_STATUS
{
NN_OS_NULL = 0, // <20>޲<EFBFBD><DEB2><EFBFBD>;
NN_OS_CALLBANK, // <20><><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD>ׯ;
NN_OS_ADDSCORE0, // <20><><EFBFBD><EFBFBD><EFBFBD>˼<EFBFBD>ע;
NN_OS_ADDSCORE1, // <20>Լ<EFBFBD><D4BC><EFBFBD>ע;
};
class NNGameScene :public GameFrameBase
{
public:
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
CREATE_FUNC(NNGameScene);
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);
void onSliderEventCallback(Ref* widget, Slider::EventType type);
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><D6B8><EFBFBD><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>;
bool onGameSceneSendCard(void* pData, int nDataSize);
//<2F><>ׯ״̬;
bool onGameSceneRomBanker(void* pData, int nDataSize);
//<2F><>ע״̬;
bool onGameSceneUserChip(void* pData, int nDataSize);
//<2F><><EFBFBD><EFBFBD>״̬;
bool onGameSceneOpenCard(void* pData, int nDataSize);
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
bool onGameSceneEnd(void* pData, int nDataSize);
//<2F><>Ϸ<EFBFBD><CFB7>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>;
//<2F><>Ϸ<EFBFBD><CFB7>ʼ;
void onSubGameStart(const void * pBuffer, uint16 wDataSize);
//<2F><>ʼ<EFBFBD><CABC>ׯ;
void onSubStartRob(const void * pBuffer, uint16 wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ׯ;
void onSubUserRob(const void * pBuffer, uint16 wDataSize);
//<2F><>ʼ<EFBFBD><CABC>ע;
void onSubStartChip(const void * pBuffer, uint16 wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע;
void onSubUserChip(const void * pBuffer, uint16 wDataSize);
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>;
void onSubStartOpen(const void * pBuffer, uint16 wDataSize);
//<2F><><EFBFBD>ҿ<EFBFBD><D2BF><EFBFBD>;
void onSubOpenCard(const void * pBuffer, uint16 wDataSize);
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
void onSubGameEnd(const void * pBuffer, uint16 wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҿ<EFBFBD><D2BF><EFBFBD>;
void onSubAllOpenCard(const void * pBuffer, uint16 wDataSize);
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>;
virtual void OnEventUserEnter(GamePlayer * pPlayer);
//<2F><><EFBFBD><EFBFBD>״̬<D7B4>ı<EFBFBD>;
virtual void OnEventUserStatus(GamePlayer * pPlayer);
//<2F>û<EFBFBD><C3BB>뿪;
virtual void OnEventUserLeave(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);
// <20><>ʱ<EFBFBD><CAB1>;
void openGameClock(int iLeftTime, const std::function<void()>& callFunc=nullptr);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>;
void closeGameClock();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ׯ<EFBFBD><D7AF><EFBFBD><EFBFBD>ʧ;
void clearRobIcon();
// <20><><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD>;
float playSendCardAni();
// <20>ƶ<EFBFBD><C6B6>˿<EFBFBD>;
void moveSentCardSprite(Sprite* pCardSprite, uint16 wViewID, float fDelayTime);
//// Ӯ<><D3AE><EFBFBD><EFBFBD>;
//void showWinAni(SCORE lGameScore[NN_GAME_PLAYER]);
//// Ӯͼ<D3AE><CDBC><EFBFBD><EFBFBD>ʾ;
//void showWinCup();
// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void showPlayerCard();
// <20><>ʾׯ<CABE><D7AF>;
void showLordUser(bool isplayEffect = false);
// <20>ӳ<EFBFBD><D3B3><EFBFBD><EBB6AF>;
void playChipAni(uint16 wViewID, int nCount, bool bAction);
// <20>ճ<EFBFBD><D5B3><EFBFBD><EBB6AF>;
void playGetChipAni();
// <20><><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>;
void ShowGoldMoveToArea(SCORE lScore, uint8 wStartViewID, uint8 wTargetViewID);
// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>;
void showCuoPai(uint8 aryCardData[], uint8 cbCardCount);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void operateAction(std::string strAction);
// <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><C5A3>Ч;
void playCowValue(int cbGender, int cowIndex);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч;
void playEffect(std::string strPath);
// <20><><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>Ч;
void playBtnClickEffect();
// <20><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD>Ϣ;
void sendSendCardOverMsg();
// <20><>ׯ<EFBFBD><D7AF>Ϣ;
void sendRobBankerMsg(bool bFlag);
// <20><>ע<EFBFBD><D7A2>Ϣ;
void sendChipScoreMsg(SCORE lChipScore);
// <20><><EFBFBD>Ϳ<EFBFBD><CDBF><EFBFBD><EFBFBD><EFBFBD>Ϣ;
void sendOpenCardMsg();
// <20><><EFBFBD><EFBFBD>״̬;
void setOperateStatus(NN_OPERATE_STATUS ops);
// <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>־;
int m_nVoiceTimeID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ID;
uint8 m_cbGameStatus; //<2F><>Ϸ״̬;
SCORE _iBaseScore; //<2F><>ע;
SCORE _lMinFreeChip; //<2F><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>ע;
SCORE _lMaxFreeChip; //<2F><><EFBFBD><EFBFBD><EFBFBD>ⶥ;
SCORE _lAddChip; //<2F><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>;
bool _bCuoPai;
bool _bWin;
uint16 _wLordUser; //ׯ<><D7AF>;
uint16 _wCurrentUser; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>;
uint8 _cbHandCardCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint8 _aryRobStatus[NN_GAME_PLAYER]; //<2F><>ׯ״̬ 0:û<><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2:<3A><>;
uint8 _aryChipStatus[NN_GAME_PLAYER]; //<2F><>ע״̬ 0:û<>£<EFBFBD>1:<3A><><EFBFBD><EFBFBD>;
uint8 _aryOpenStatus[NN_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>״̬ 0:û<><C3BB><EFBFBD><EFBFBD>1:<3A>ѿ<EFBFBD>;
bool _aryActiveStatus[NN_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬;
uint8 _aryHandCardData[NN_MAX_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint8 _aryAllHandCardData[NN_GAME_PLAYER][NN_MAX_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
int _aryCardNiuType[NN_GAME_PLAYER]; //ţֵ;
SCORE _aryTableScore[NN_GAME_PLAYER]; //<2F><>ע<EFBFBD><D7A2>Ŀ;
SCORE _lCurrentChip; //<2F><>ǰע<C7B0><D7A2>;
SCORE _lViewGameScore[NN_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӯ<EFBFBD><D3AE><EFBFBD><EFBFBD>;
std::vector<Sprite*> _aryChipSprite; //<2F><><EFBFBD><EFBFBD><EBBEAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
NNPrivateEndNode* _OpenResultScene;
//<2F><><EFBFBD><EFBFBD>;
Node* m_rootNode; //<2F><><EFBFBD><EFBFBD>;
Layout* _MainPanel;
ImageView* _imgRoomInfo;
Layout* _RoundPanel;
TextBMFont* _txtRoomID;
Text* _txtCurrentTime;
Text* _txtRoomRule;
//Sprite* _spRoomRule0; // <20><>ׯ;
//Sprite* _spRoomRule1; // <20><>ׯ;
TextBMFont* _txtJushu;
Layout* _ResultPanel;
Armature* _pArmatureEnd;
Button* _btnContinue;
Button* _btnLookon;
Button* _ButtonPanel;
Button* _btnWXInvite;
Button* _btnLeave;
Button* _btnWXDismiss;
Button* _btnWXVoice;
Button* _btnWXChat;
Button* _btnStartGame;
Layout* _GamePanel;
Button* _btnAutoNiu;
Button* _btnCuoPai;
Layout* _RobPanel;
Button* _btnRobNO;
Button* _btnRobYES;
Layout* _YazhuPanel1;
Text* _txtZhu;
Sprite* _spOtherCallBanker;
Sprite* _spOtherAddScore;
Sprite* _spSelfAddScore;
Sprite* _imgGameClock;
Layout* _ChipPanel;
NN_GamePlayer* m_aryPlayer[NN_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>;
NN_GamePlayer* m_pLocalPlayer;
std::string m_strGameRuleInfo;
std::string m_strGameTitle;
Vec2 _ptSendCardPos; // <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>;
Armature* _pArmatureStart; // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>;
CNNGameLogic 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>;
};
};
}