#pragma once #include "cocos2d.h" #include "cocostudio/CocoStudio.h" #include "ui/CocosGUI.h" #include "GamePlayer.h" #include "PDK_CMD.h" USING_NS_CC; using namespace cocostudio; using namespace std; using namespace ui; class PDKPlayer : public GamePlayer { public: PDKPlayer(WORD wViewID, Layout* pRootLayout); ~PDKPlayer(); //初始化; virtual bool init(); virtual void setVisible(bool bShow); 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 setLand(bool bLandlord); //设置准备状态; void setReadyVisible(bool bVisible); //设置断线状态; void setOfflineVisible(bool bVisible); //设置叫分; void setCallVisible(bool bVisible, bool cbScore); //设置不出; void setPassVisible(bool bVisible); //设置玩家打出去的牌; void setOutCardData(uint8* pData, uint8 cbCount, bool bDelCard = false); //显示倒计时; void showClock(uint16 wSeconds, const std::function& callback=nullptr); //隐藏倒计时; void killClock(); //更新积分; void updateScore(); //更新手中扑克牌数量; void setHandCardCount(uint8 cbCount); //设置玩家手牌; void setHandCardData(uint8* pData, uint8 cbCount); //获取发牌位置; const Vec2 getCardPos(); //获取出牌位置; const Vec2& getOutCardPos(); //获取头像位置; const Vec2& getHeadPos(); //增加子节点; void addChild(Node* pNode); //转换到世界坐标系; Vec2 convertToWorldSpace(const Vec2& nodePoint) const; ////获取根节点; //Layout* getRootNode() { return m_pRootLayout; } private: bool m_bReady; //是否准备了; bool m_bLandlord; //是否是地主; uint8 m_cbViewID; //视图ID; Layout* m_pRootLayout; //根节点; Layout* m_pHandCardLayout; //手牌容器; Text* m_pTxtNickName; //昵称; Text* m_pTxtScore; //积分; TextAtlas* m_pTxtAtlClock; //倒计时; TextAtlas* m_pTxtAtlSurplus; //剩余牌; ImageView* m_pImgChatView; //聊天框背景; Text* m_pTxtChatInfo; //聊天内容; Node* m_pVoiceBubble; //语音气泡; Sprite* m_pSprVoiceAni; //语音动画; Sprite* m_pSprHead; //头像; Sprite* m_pLandFlag; //地主标志; Sprite* m_pSprOper; //操作显示; Sprite* m_pSprOffline; //断线标志; Sprite* m_pSprSurplusCard; //剩余牌; Text* m_pTxtUnionName; //工会名称; Layout* m_pPanelOutCard; //出牌面板; };