#pragma once #include "cocos2d.h" #include "cocostudio/CocoStudio.h" #include "cocostudio/CCArmature.h" #include "ui/CocosGUI.h" #include "GamePlayer.h" #include "ZJH_CMD.h" USING_NS_CC; using namespace cocostudio; using namespace std; using namespace ui; class ZJHGamePlayer : public GamePlayer { public: ZJHGamePlayer(WORD wViewID, Layout* pRootLayout); ~ZJHGamePlayer(); //初始化; 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); //设置准备状态; void setReadyVisible(bool bVisible); //设置断线状态; void setOfflineVisible(bool bVisible); //获取头像; Sprite* getHeadSprite() { return m_pSprHead; } //开启时钟; void openClock(float fTime); //关闭时钟; void closeClock(); //设置选择比牌按钮状态; void setCompareVisible(bool bVisible); //设置选择比牌按钮点击回调; void setCompareClickCallback(const std::function& callback); //设置选择看牌按钮状态; void setLookCardVisible(bool bVisible); //设置选择看牌按钮点击回调; void setLookCardClickCallback(const Widget::ccWidgetClickCallback& callback); //显示操作提示; void showOperateTip(uint32 dwOper, int nData); //显示背牌; void showBackCard(); //显示牌类型; void showCardType(uint8 cbCardType); //显示牌类型; void showCardTypeEx(uint8 cbCardType); //隐藏牌类型; void hideCardTypeEx(); //增加牌; void addOneCard(uint8 cbData, uint8 cbIndex); //设置总下注; void setAllChip(SCORE lChip); //设置加注; void setAddChip(SCORE lChip); //更新积分; void updateScore(); //显示牌; void showCard(uint8 aryCardData[ZJH_MAX_COUNT]); //显示手牌状态; void showHandStatus(uint8 cbHandStatus); //隐藏手牌状态; void hideHandStatus(); //获取头像位置; const Vec2 getHeadPos(); //获取手牌位置; const Vec2 getHandCardPos(uint8 cbIndex); //增加子节点; void addChild(Node* pNode); //转换到世界坐标系; Vec2 convertToWorldSpace(const Vec2& nodePoint) const; private: //点击比牌按钮; void onCompareButtonClick(Ref* pSender); private: bool m_bReady; // 是否准备了; uint8 m_cbViewID; // 视图ID; Layout* m_pRootLayout; // 根节点; Text* m_pTxtNickName; // 昵称; Text* m_pTxtScore; // 积分; ImageView* m_pImgChatView; // 聊天框背景; Text* m_pTxtChatInfo; // 聊天内容; Node* m_pVoiceBubble; // 语音气泡; Sprite* m_pSprVoiceAni; // 语音动画; Sprite* m_pSprAllAddChip; // 已下注精灵; Text* m_pTxtAllAddChip; // 已下注文本; Sprite* m_pSprCurAddChip; // 当前加注精灵; Text* m_pTxtCurAddChip; // 当前加注文本; Button* m_pBtnUserHead; // 头像按钮; Button* m_pBtnCompareCard; // 比牌按钮; Button* m_pBtnLookCard; // 看牌按钮; Sprite* m_pSprHead; // 头像; Sprite* m_pSprOffline; // 断线标志; Sprite* m_pSprOwner; // 房主标志; Sprite* m_pSprReady; // 准备标志; Sprite* m_pSprStatus; // 状态标志; TextBMFont* m_pTxtOperTip; // 操作提示; Vec2 m_ptInitOperTip; // 提示文字初始位置; Armature* m_pArmatureCardType; // 类型动画; Armature* m_pArmatureSelect; // 选择动画; Layout* m_aryPanelHandCard; Sprite* m_arySpriteCard[ZJH_MAX_COUNT]; Sprite* m_sprCardType; ProgressTimer* m_pProgressTimer; Sprite* m_pSprTimeOut; uint8 m_aryCardData[ZJH_MAX_COUNT]; std::function _fnCompareCardSelect; };