Files
wnmj/Classes/Games/13S/13S_GamePlayer.h
2026-02-13 14:34:15 +08:00

132 lines
3.6 KiB
C++

#pragma once
#include "cocos2d.h"
#include "cocostudio/CocoStudio.h"
#include "cocostudio/CCArmature.h"
#include "ui/CocosGUI.h"
#include "GamePlayer.h"
#include "13S_CMD.h"
USING_NS_CC;
using namespace cocostudio;
using namespace std;
using namespace ui;
class SSS_GamePlayer : public GamePlayer
{
public:
SSS_GamePlayer(WORD wViewID, Layout* pRootLayout);
~SSS_GamePlayer();
//初始化;
virtual bool init();
public:
//玩家状态改变;
void upPlayerState();
//玩家进入;
virtual void PlayerEnter();
//玩家离开;
virtual void PlayerLeave();
//显示玩家聊天内容;
virtual void showChatInfo(const std::string strChatString);
//显示语音气泡;
virtual void showVoiceBubble();
//隐藏语音气泡;
virtual void hideVoiceBubble();
public:
//重置界面;
void resetUI(bool bAll = false);
//玩家信息可见性;
void setInfoVisible(bool bVisible);
//设置是否为房主;
void setOwner(bool bOwenr);
//设置是否为庄家;
bool setBankerVisible(bool bVisible);
//设置准备状态;
void setReadyVisible(bool bVisible);
//设置断线状态;
void setOfflineVisible(bool bVisible);
//增加牌;
void addOneCard(uint8 cbData, uint8 cbRowIndex, uint8 cbColIndex);
//更新积分;
void updateScore();
//更新筹码;
void updateUserChip(SCORE lChipScore);
void showGameScore(SCORE aryScore[SSS_GROUP_COUNT]);
void setGameScore(SCORE aryScore[SSS_GROUP_COUNT], uint16 aryCardType[SSS_GROUP_COUNT], bool bShowScore=true);
void playScoreAni(int nIndex, const std::function<void()>& fnCallback, bool bPlaySound, bool bPlaySubScore=true);
void playSubScoreAni(int nIndex, SCORE lScore, const std::function<void()>& fnCallback=nullptr);
//显示牌;
void showCard(uint8 aryFrontCard[SSS_MIN_ITEM_COUNT], uint8 aryMidCard[SSS_MAX_ITEM_COUNT], uint8 aryBackCard[SSS_MAX_ITEM_COUNT], uint8 cbHandStatus, bool bInitCard = false);
//显示手牌状态;
void showHandStatus(uint8 cbHandStatus);
//显示手牌遮罩层;
void showSepShadow(bool bVisible);
//显示特殊牌类型;
void showCardType(uint8 cbSpecialCardType);
//获取头像位置;
const Vec2 getHeadPos();
//获取手牌位置;
const Vec2 getHandCardPos(uint8 cbRowIndex, uint8 cbColIndex);
//增加子节点;
void addChild(Node* pNode);
//转换到世界坐标系;
Vec2 convertToWorldSpace(const Vec2& nodePoint) const;
private:
bool m_bReady; // 是否准备了;
uint8 m_cbViewID; // 视图ID;
Layout* m_pRootLayout; // 根节点;
TextBMFont* m_pTxtChip; //筹码;
Text* m_pTxtNickName; // 昵称;
Text* m_pTxtScore; // 积分;
ImageView* m_pImgChatView; // 聊天框背景;
Text* m_pTxtChatInfo; // 聊天内容;
Node* m_pVoiceBubble; // 语音气泡;
Sprite* m_pSprVoiceAni; // 语音动画;
Button* m_pBtnUserHead; // 头像按钮;
Sprite* m_pSprHead; // 头像;
Sprite* m_pSprOffline; // 断线标志;
Sprite* m_pSprOwner; // 房主标志;
Sprite* m_pSprBanker; // 庄标志;
Sprite* m_pSprReady; // 准备标志;
Sprite* m_pSprStatus; // 状态标志;
Sprite* m_pSprSepShadow; // 遮罩层;
Armature* m_pArmatureStatus; // 状态动画;
Armature* m_pArmaCardTypeNode; // 手牌类型;
Layout* m_pPanelGameScore; // 游戏分面板;
Layout* m_aryPanelHandCard[SSS_GROUP_COUNT];
Sprite* m_arySpriteCard[SSS_GROUP_COUNT][SSS_MAX_ITEM_COUNT];
Sprite* m_arySprCardType[SSS_GROUP_COUNT];
TextAtlas* m_pTxtAtlasScoreCount;
TextAtlas* m_aryTxtAtlasScore[SSS_GROUP_COUNT]; //
SCORE m_aryGameScore[SSS_GROUP_COUNT];
SCORE m_nScoreCount;
uint16 m_aryCardType[SSS_GROUP_COUNT];
uint8 m_aryFrontCard[SSS_MIN_ITEM_COUNT]; //玩家前墩;
uint8 m_aryMidCard[SSS_MAX_ITEM_COUNT]; //玩家中墩;
uint8 m_aryBackCard[SSS_MAX_ITEM_COUNT]; //玩家后墩;
};