#pragma once #include "cocos2d.h" #include "cocostudio/CocoStudio.h" #include "ui/CocosGUI.h" #include "GamePlayer.h" #include "DZ_CMD.h" USING_NS_CC; using namespace cocostudio; using namespace std; using namespace ui; class DZ_GamePlayer : public GamePlayer { public: DZ_GamePlayer(WORD wViewID, Layout* pRootLayout); ~DZ_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(); //显示本地信息; virtual void showUserInfo(); public: //重置界面; void resetUI(bool bAll = false); //玩家信息可见性; void setInfoVisible(bool bVisible); //设置名称是否可见; //void setNickNameVisible(bool bVisible); //设置是否为地主; void setLand(uint8 cbFlag); //设置准备状态; void setReadyVisible(bool bVisible); //设置断线状态; void setOfflineVisible(bool bVisible); //设置房主标志状态; void setOwnerVisible(bool bVisible); //设置托管状态; void setTrustVisible(bool bVisible); //设置叫分; void setCallVisible(bool bVisible, uint8 cbScore=255); //设置不出; void setPassVisible(bool bVisible); //设置玩家手牌; void setHandCardData(uint8* pData, uint8 cbCount, bool bHorizontal=false); //设置玩家打出去的牌; void setOutCardData(uint8* pData, uint8 cbCount, bool bDelCard=false); //显示倒计时; void showClock(uint16 wSeconds, const std::function& callback=nullptr); //隐藏倒计时; void killClock(); //显示排名; void showRanking(uint8 cbRanking); //显示叫的牌; void showCallCard(uint8 cbCardData); //更新积分; void updateScore(bool bVisible); //更新手中扑克牌数量; void setHandCardCount(uint8 cbCount, bool isVisble); //设置手牌数量不可见; void setHandCardCountVisble(bool isVisble); //获取发牌位置; 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_bNickNameVisible; //昵称是否可见; 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; //倒计时; Text* m_pTxtSurplus; //剩余牌; ImageView* m_pImgChatView; //聊天框背景; Text* m_pTxtChatInfo; //聊天内容; Node* m_pVoiceBubble; //语音气泡; Sprite* m_pSprVoiceAni; //语音动画; Sprite* m_pSprHead; //头像; Sprite* m_pLandFlag; //地主标志; Sprite* m_pFarmerFlag; //农民标志; Sprite* m_pSprOper; //操作显示; Sprite* m_pSprOffline; //断线标志; Sprite* m_pSprOwner; //房主标志; Sprite* m_pSprTrust; //托管标志; Sprite* m_pSprSurplusCard; //剩余牌; Sprite* m_pSprRanking; //排名; Layout* m_pPanelOutCard; //出牌面板; //Node* m_pNodeCallCard; //庄家叫的牌; };