#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& fnCallback, bool bPlaySound, bool bPlaySubScore=true); void playSubScoreAni(int nIndex, SCORE lScore, const std::function& 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]; //玩家后墩; };