Files
wnmj/Classes/Games/ZJH/ZJH_GamePlayer.cpp
2026-02-13 14:34:15 +08:00

804 lines
19 KiB
C++

#include "ZJH_GamePlayer.h"
#include "ImagicDownManager.h"
#include "ActionEx.h"
#include "ZJH_CMD.h"
#include "ZJH_GameLogic.h"
#include "SimpleAudioEngine.h"
ZJHGamePlayer::ZJHGamePlayer(WORD wViewID, Layout* pRootLayout) :
GamePlayer(NULL), m_bReady(false), m_cbViewID(wViewID), m_pRootLayout(pRootLayout)
{
init();
}
ZJHGamePlayer::~ZJHGamePlayer()
{
}
bool ZJHGamePlayer::init()
{
// 已下注精灵;
m_pSprAllAddChip = static_cast<Sprite*>(m_pRootLayout->getChildByName("sprAllAddChip"));
CC_ASSERT(m_pSprAllAddChip != nullptr);
m_pSprAllAddChip->setVisible(false);
// 已下注文本;
m_pTxtAllAddChip = static_cast<Text*>(m_pSprAllAddChip->getChildByName("txtNum"));
CC_ASSERT(m_pTxtAllAddChip != nullptr);
// 当前下注精灵;
m_pSprCurAddChip = static_cast<Sprite*>(m_pRootLayout->getChildByName("sprCurAddChip"));
CC_ASSERT(m_pSprCurAddChip != nullptr);
m_pSprCurAddChip->setVisible(false);
// 当前下注文本;
m_pTxtCurAddChip = static_cast<Text*>(m_pSprCurAddChip->getChildByName("txtNum"));
CC_ASSERT(m_pTxtCurAddChip != nullptr);
// 超时精灵;
m_pSprTimeOut = static_cast<Sprite*>(m_pRootLayout->getChildByName("sprTimeOut"));
CC_ASSERT(m_pSprTimeOut != nullptr);
// 时钟节点;
Node* pNodeTimer = m_pRootLayout->getChildByName("nodeTimer");
CC_ASSERT(pNodeTimer!=nullptr);
int nTimerZOrder = pNodeTimer->getLocalZOrder();
pNodeTimer->removeFromParent();
Sprite* sprTimerBg = Sprite::create("Games/ZJH/Table/Timer.png");
CC_ASSERT(sprTimerBg != nullptr);
//sprTimerBg->setColor(Color3B(0x5a, 0xff, 0));
// 时钟进度条;
m_pProgressTimer = ProgressTimer::create(sprTimerBg);
CC_ASSERT(m_pProgressTimer != nullptr);
m_pProgressTimer->setType(ProgressTimer::Type::RADIAL);
m_pProgressTimer->setPosition(m_pSprTimeOut->getPosition());
m_pProgressTimer->setLocalZOrder(nTimerZOrder);
m_pProgressTimer->setVisible(false);
m_pRootLayout->addChild(m_pProgressTimer);
// 玩家昵称;
m_pTxtNickName = static_cast<Text*>(m_pRootLayout->getChildByName("txtNickName"));
CC_ASSERT(m_pTxtNickName!=nullptr);
m_pTxtNickName->setString("");
// 头像按钮;
m_pBtnUserHead = static_cast<Button*>(m_pRootLayout->getChildByName("btnUserHead"));
CC_ASSERT(m_pBtnUserHead != nullptr);
// 比牌按钮;
m_pBtnCompareCard = static_cast<Button*>(m_pRootLayout->getChildByName("btnUserCompare"));
//CC_ASSERT((ZJH_VIEW_SELF_ID == m_cbViewID)&&(m_pBtnCompareCard==nullptr));
if (m_pBtnCompareCard!=nullptr)
{
m_pBtnCompareCard->setVisible(false);
m_pBtnCompareCard->addClickEventListener(CC_CALLBACK_1(ZJHGamePlayer::onCompareButtonClick, this));
}
// 看牌按钮;
m_pBtnLookCard = static_cast<Button*>(m_pRootLayout->getChildByName("btnLookCard"));
//CC_ASSERT((ZJH_VIEW_SELF_ID == m_cbViewID) && (m_pBtnLookCard != nullptr));
if (m_pBtnLookCard != nullptr)
{
m_pBtnLookCard->setVisible(false);
}
//头像;
m_pSprHead = static_cast<Sprite*>(m_pBtnUserHead->getChildByName("imgUserHead"));
CC_ASSERT(m_pSprHead!=nullptr);
m_pSprHead->setVisible(false);
//积分;
m_pTxtScore = static_cast<Text*>(m_pRootLayout->getChildByName("txtScore"));
CC_ASSERT(m_pTxtScore != nullptr);
m_pTxtScore->setString("");
//房主标志;
m_pSprOwner = static_cast<Sprite*>(m_pRootLayout->getChildByName("sprOwner"));
CC_ASSERT(m_pSprOwner != nullptr);
m_pSprOwner->setVisible(false);
//准备标志;
m_pSprReady = static_cast<Sprite*>(m_pRootLayout->getChildByName("sprReadyIcon"));
CC_ASSERT(m_pSprReady != nullptr);
m_pSprReady->setVisible(false);
//状态标志;
m_pSprStatus = static_cast<Sprite*>(m_pRootLayout->getChildByName("sprStatus"));
CC_ASSERT(m_pSprStatus != nullptr);
m_pSprStatus->setVisible(false);
m_pArmatureCardType = static_cast<Armature*>(m_pRootLayout->getChildByName("armCardType"));
CC_ASSERT(m_pArmatureCardType != nullptr);
m_pArmatureCardType->setVisible(false);
//选择动画;
m_pArmatureSelect = static_cast<Armature*>(m_pRootLayout->getChildByName("armSelect"));
//CC_ASSERT((ZJH_VIEW_SELF_ID == m_cbViewID) && (m_pArmatureSelect == nullptr));
if (m_pArmatureSelect != nullptr)
{
m_pArmatureSelect->setVisible(false);
}
//断线标志;
m_pSprOffline = static_cast<Sprite*>(m_pRootLayout->getChildByName("sprOffline"));
CC_ASSERT(m_pSprOffline != nullptr);
m_pSprOffline->setVisible(false);
auto panelCard = static_cast<Layout*>(m_pRootLayout->getChildByName("panelHandCard"));
CC_ASSERT(panelCard != nullptr);
m_aryPanelHandCard = panelCard;
for (int i = 0; i < ZJH_MAX_COUNT; i++)
{
Sprite* sprCard = static_cast<Sprite*>(panelCard->getChildByName(StringUtils::format("sprCard%d", i)));
CC_ASSERT(sprCard != nullptr);
sprCard->setVisible(false);
m_arySpriteCard[i] = sprCard;
}
m_sprCardType = static_cast<Sprite*>(m_pRootLayout->getChildByName("sprCardType"));
//CC_ASSERT((ZJH_VIEW_SELF_ID != m_cbViewID) && (m_sprCardType != nullptr));
if (m_sprCardType!=nullptr)
{
m_sprCardType->setVisible(false);
}
m_pTxtOperTip = static_cast<TextBMFont*>(m_pRootLayout->getChildByName("fntOperTip"));
CC_ASSERT(m_pTxtOperTip != nullptr);
m_pTxtOperTip->setVisible(false);
m_ptInitOperTip = m_pTxtOperTip->getPosition();
//聊天框背景;
m_pImgChatView = static_cast<ImageView*>(m_pRootLayout->getChildByName("img9ChatBubble"));
CC_ASSERT(m_pImgChatView != nullptr);
m_pImgChatView->setVisible(false);
auto panelChat = static_cast<Layout*>(m_pImgChatView->getChildByName("ChatMsgPanel"));
CC_ASSERT(panelChat != nullptr);
//聊天内容;
m_pTxtChatInfo = static_cast<Text*>(panelChat->getChildByName("txtChatMsg"));
CC_ASSERT(m_pTxtChatInfo != nullptr);
//语音气泡;
m_pVoiceBubble = static_cast<Node*>(m_pRootLayout->getChildByName("voice"));
CC_ASSERT(m_pVoiceBubble != nullptr);
m_pVoiceBubble->setVisible(false);
auto speek_bg = (Sprite*)m_pVoiceBubble->getChildByName("speek_bg");
CC_ASSERT(speek_bg != nullptr);
m_pSprVoiceAni = (Sprite*)speek_bg->getChildByName("voice_ing");
CC_ASSERT(m_pSprVoiceAni != nullptr);
//比牌选择回调;
_fnCompareCardSelect = nullptr;
return true;
}
void ZJHGamePlayer::PlayerEnter()
{
setInfoVisible(true);
std::string strHttp = GetHeadHttp();
cocos2d::log("%s", strHttp.c_str());
uint32 dwUserID = GetUserID();
ImagicDownManager::Instance().addDown(m_pSprHead, strHttp, dwUserID);
//showChatInfo(utility::a_u8("作用:让目标动作赋予反弹力,且以目标动作结束位子开始反弹"));
}
void ZJHGamePlayer::PlayerLeave()
{
if (m_isAllowLeave)
{
setInfoVisible(false);
setReadyVisible(false);
setOfflineVisible(false);
}
}
//显示玩家聊天内容;
void ZJHGamePlayer::showChatInfo(const std::string strChatString)
{
auto label = Label::createWithSystemFont(strChatString, "", 28);
CC_ASSERT(label!=nullptr);
m_pTxtChatInfo->setString(strChatString);
const Size& labelSize = label->getContentSize();
const Size& frameSize = m_pTxtChatInfo->getContentSize();
int nRows = labelSize.width / frameSize.width;
//int nRemainder = (int)labelSize.width % (int)frameSize.width;
//if (nRemainder>0)
//{
// nRows++;
//}
m_pImgChatView->setVisible(true);
m_pTxtChatInfo->setPositionY(28.0f);
auto callback = CallFunc::create([=](){
m_pImgChatView->setVisible(false);
});
//有几行文字就向上移动几次;
if (nRows > 0)
{
auto move = EaseSineInOut::create(MoveBy::create(0.4f, Vec2(0, labelSize.height)));
auto seq = Sequence::create(DelayTime::create(2.5f), move, nullptr);
m_pTxtChatInfo->runAction(Sequence::create(Repeat::create(seq, nRows), DelayTime::create(2.5f), callback, nullptr));
}
else
{
m_pTxtChatInfo->runAction(Sequence::create(DelayTime::create(2.5f), callback, nullptr));
}
}
//显示语音气泡;
void ZJHGamePlayer::showVoiceBubble()
{
CC_ASSERT(m_pVoiceBubble != nullptr);
m_pVoiceBubble->setVisible(true);
// 启动帧动画;
auto action = CSLoader::createTimeline("Games/ZJH/PlayerVoiceNode.csb");
action->gotoFrameAndPlay(0);
m_pSprVoiceAni->runAction(action);
}
//隐藏语音气泡;
void ZJHGamePlayer::hideVoiceBubble()
{
CC_ASSERT(m_pVoiceBubble != nullptr);
m_pSprVoiceAni->stopAllActions();
m_pVoiceBubble->setVisible(false);
}
//重置界面;
void ZJHGamePlayer::resetUI(bool bAll/* = false*/)
{
if ( bAll )
{
setInfoVisible(false);
setReadyVisible(false);
setOfflineVisible(false);
}
////断线标志;
//m_pSprOffline->setVisible(false);
m_pSprAllAddChip->setVisible(false);
m_pSprCurAddChip->setVisible(false);
m_pSprTimeOut->setVisible(false);
m_pProgressTimer->setVisible(false);
//手牌面板;
for (int i = 0; i < ZJH_MAX_COUNT; i++)
{
m_arySpriteCard[i]->setVisible(false);
}
if (m_sprCardType != nullptr)
{
m_sprCardType->setVisible(false);
}
m_pSprStatus->setVisible(false);
ArmatureAnimation* pAniCardType = m_pArmatureCardType->getAnimation();
if (pAniCardType != nullptr)
{
pAniCardType->stop();
}
m_pArmatureCardType->setVisible(false);
if (m_pArmatureSelect!=nullptr)
{
ArmatureAnimation* pAniStatus = m_pArmatureSelect->getAnimation();
if (pAniStatus != nullptr)
{
pAniStatus->stop();
}
m_pArmatureSelect->setVisible(false);
}
m_pTxtOperTip->stopAllActions();
m_pTxtOperTip->setVisible(false);
if (m_pBtnCompareCard != nullptr)
{
m_pBtnCompareCard->setVisible(false);
}
if (m_pBtnLookCard != nullptr)
{
m_pBtnLookCard->setVisible(false);
}
memset(m_aryCardData, 0, sizeof(m_aryCardData));
}
//玩家信息可见性;
void ZJHGamePlayer::setInfoVisible(bool bVisible)
{
CC_ASSERT(m_pSprHead!=nullptr);
m_pSprHead->setVisible(bVisible);
CC_ASSERT(m_pTxtNickName!=nullptr);
m_pTxtNickName->setString(bVisible?GetNickName():"");
m_pTxtNickName->setVisible(bVisible);
CC_ASSERT(m_pTxtScore != nullptr);
SCORE lScore = bVisible? GetUserScore() : 0;
m_pTxtScore->setString(utility::toString<SCORE>(lScore));
m_pTxtScore->setVisible(bVisible);
}
//设置是否为房主;
void ZJHGamePlayer::setOwner(bool bOwenr)
{
CC_ASSERT(m_pSprOwner != nullptr);
m_pSprOwner->setVisible(bOwenr);
}
//设置准备状态;
void ZJHGamePlayer::setReadyVisible(bool bVisible)
{
CC_ASSERT(m_pSprReady != nullptr);
m_pSprReady->setVisible(bVisible);
m_bReady = bVisible;
}
//设置断线状态;
void ZJHGamePlayer::setOfflineVisible(bool bVisible)
{
CC_ASSERT(m_pSprOffline != nullptr);
m_pSprOffline->setVisible(bVisible);
}
//开启时钟;
void ZJHGamePlayer::openClock(float fTime)
{
auto callFunc = CallFunc::create([this]{
m_pSprTimeOut->setVisible(true);
auto actRepeat = RepeatForever::create(Sequence::create(FadeIn::create(1.0f), FadeOut::create(1.0f), nullptr));
m_pSprTimeOut->runAction(actRepeat);
});
auto action = Sequence::create(Show::create(), ProgressTo::create(fTime, 100.f), Hide::create(), callFunc, nullptr);
m_pProgressTimer->setColor(Color3B(0x5a, 0xff, 0));
m_pProgressTimer->setPercentage(0.f);
m_pProgressTimer->runAction(action);
m_pProgressTimer->runAction(TintTo::create(fTime, 255, 0, 0));
}
//关闭时钟;
void ZJHGamePlayer::closeClock()
{
m_pSprTimeOut->stopAllActions();
m_pSprTimeOut->setVisible(false);
m_pProgressTimer->stopAllActions();
m_pProgressTimer->setVisible(false);
}
//设置选择比牌按钮状态;
void ZJHGamePlayer::setCompareVisible(bool bVisible)
{
if (m_pBtnCompareCard == nullptr)
{
return;
}
m_pBtnCompareCard->setVisible(bVisible);
ArmatureAnimation* pAniSelect = m_pArmatureSelect->getAnimation();
if (pAniSelect != nullptr)
{
if (bVisible)
{
pAniSelect->play("SelectArrow", -1, 1);
}
else
{
pAniSelect->stop();
}
}
m_pArmatureSelect->setVisible(bVisible);
}
//设置选择比牌按钮点击回调;
void ZJHGamePlayer::setCompareClickCallback(const std::function<void(uint16)>& callback)
{
_fnCompareCardSelect = callback;
}
//设置选择看牌按钮状态;
void ZJHGamePlayer::setLookCardVisible(bool bVisible)
{
if (m_pBtnLookCard == nullptr)
{
return;
}
m_pBtnLookCard->setVisible(bVisible);
}
//设置选择看牌按钮点击回调;
void ZJHGamePlayer::setLookCardClickCallback(const Widget::ccWidgetClickCallback& callback)
{
if (m_pBtnLookCard != nullptr)
{
m_pBtnLookCard->addClickEventListener(callback);
}
}
//显示背牌;
void ZJHGamePlayer::showBackCard()
{
//加载牌;
SpriteFrameCache* pSpriteFrameCache = SpriteFrameCache::getInstance();
SpriteFrame* pSpriteFrame = pSpriteFrameCache->getSpriteFrameByName("L_0x00.png");
CC_ASSERT(pSpriteFrame != nullptr);
for (int i = 0; i < ZJH_MAX_COUNT; i++)
{
Sprite* sprCard = m_arySpriteCard[i];
sprCard->setTag(0);
sprCard->setSpriteFrame(pSpriteFrame);
sprCard->setVisible(true);
}
}
//显示操作提示;
void ZJHGamePlayer::showOperateTip(uint32 dwOper, int nData)
{
std::string strOper;
if ((dwOper&ZJH_OPERATE_FOLLOW)>0)
{
strOper = StringUtils::format("跟注%d", nData);
}
else if ((dwOper&ZJH_OPERATE_ADD_CHIP)>0)
{
strOper = StringUtils::format("加注%d", nData);
}
else if ((dwOper&ZJH_OPERATE_COMPARE_CARD)>0)
{
strOper = StringUtils::format("比牌%d", nData);
}
if (!strOper.empty())
{
m_pTxtOperTip->setString(utility::a_u8(strOper));
//移动动画;
auto moveby = EaseExponentialOut::create(MoveBy::create(1.0f, Vec2(0, 100)));
m_pTxtOperTip->setPosition(m_ptInitOperTip);
auto actSeq = Spawn::create(FadeOut::create(0.2f), ScaleTo::create(0.3f, 0.4f), nullptr);
m_pTxtOperTip->setOpacity(255);
m_pTxtOperTip->setScale(1.0f);
m_pTxtOperTip->runAction(Sequence::create(Show::create(), moveby, DelayTime::create(0.8f), actSeq, Hide::create(), nullptr));
}
}
//显示牌类型;
void ZJHGamePlayer::showCardType(uint8 cbCardType)
{
ArmatureAnimation* pAniCardType = m_pArmatureCardType->getAnimation();
if (pAniCardType == nullptr)
{
return;
}
m_pArmatureCardType->setVisible(true);
switch (cbCardType)
{
case ZJH_CT_ERROR:
{
m_pArmatureCardType->setVisible(false);
break;
}
case ZJH_CT_SINGLE:
{
pAniCardType->play("PokerType6");
break;
}
case ZJH_CT_DOUBLE:
{
pAniCardType->play("PokerType5");
break;
}
case ZJH_CT_SHUN_ZI:
{
pAniCardType->play("PokerType4");
break;
}
case ZJH_CT_JIN_HUA:
{
pAniCardType->play("PokerType3");
break;
}
case ZJH_CT_SHUN_JIN:
{
pAniCardType->play("PokerType2");
break;
}
case ZJH_CT_BAO_ZI:
{
pAniCardType->play("PokerType1");
break;
}
case ZJH_CT_SPECIAL:
{
pAniCardType->play("PokerType7");
break;
}
default:
break;
}
}
//显示牌类型;
void ZJHGamePlayer::showCardTypeEx(uint8 cbCardType)
{
if (nullptr==m_sprCardType)
{
return;
}
switch (cbCardType)
{
case ZJH_CT_ERROR:
{
m_sprCardType->setVisible(false);
break;
}
case ZJH_CT_SINGLE:
{
m_sprCardType->setTexture("Games/ZJH/CardType/GaoPai.png");
break;
}
case ZJH_CT_DOUBLE:
{
m_sprCardType->setTexture("Games/ZJH/CardType/DuiZi.png");
break;
}
case ZJH_CT_SHUN_ZI:
{
m_sprCardType->setTexture("Games/ZJH/CardType/ShunZi.png");
break;
}
case ZJH_CT_JIN_HUA:
{
m_sprCardType->setTexture("Games/ZJH/CardType/JinHua.png");
break;
}
case ZJH_CT_SHUN_JIN:
{
m_sprCardType->setTexture("Games/ZJH/CardType/ShunJin.png");
break;
}
case ZJH_CT_BAO_ZI:
{
m_sprCardType->setTexture("Games/ZJH/CardType/Baozi.png");
break;
}
case ZJH_CT_SPECIAL:
{
m_sprCardType->setTexture("Games/ZJH/CardType/235.png");
break;
}
default:
break;
}
if (cbCardType>ZJH_CT_ERROR)
{
m_sprCardType->runAction(Sequence::create(DelayTime::create(0.5f), Show::create(), nullptr));
}
}
//隐藏牌类型;
void ZJHGamePlayer::hideCardTypeEx()
{
if (m_sprCardType != nullptr)
{
m_sprCardType->setVisible(false);
}
}
//增加牌;
void ZJHGamePlayer::addOneCard(uint8 cbData, uint8 cbIndex)
{
CC_ASSERT(cbIndex<ZJH_MAX_COUNT);
if (cbIndex >= ZJH_MAX_COUNT)
{
return;
}
//加载牌;
SpriteFrameCache* pSpriteFrameCache = SpriteFrameCache::getInstance();
std::string strName = StringUtils::format("L_0x%02X.png", cbData);
SpriteFrame* pSpriteFrame = pSpriteFrameCache->getSpriteFrameByName(strName);
CC_ASSERT(pSpriteFrame != nullptr);
Sprite* sprCard = m_arySpriteCard[cbIndex];
CC_ASSERT(sprCard!=nullptr);
sprCard->setTag(cbData);
sprCard->setSpriteFrame(pSpriteFrame);
sprCard->setVisible(true);
}
//设置总下注;
void ZJHGamePlayer::setAllChip(SCORE lChip)
{
m_pSprAllAddChip->setVisible(true);
m_pTxtAllAddChip->setString(StringUtils::format("%d", lChip));
}
//设置加注;
void ZJHGamePlayer::setAddChip(SCORE lChip)
{
m_pSprCurAddChip->setVisible(true);
m_pTxtCurAddChip->setString(StringUtils::format("%d", lChip));
}
//更新积分;
void ZJHGamePlayer::updateScore()
{
CC_ASSERT(m_pTxtScore != nullptr);
SCORE lScore = GetUserScore();
m_pTxtScore->setString(utility::toString<SCORE>(lScore));
}
//显示牌;
void ZJHGamePlayer::showCard(uint8 aryCardData[ZJH_MAX_COUNT])
{
SpriteFrameCache* pSpriteFrameCache = SpriteFrameCache::getInstance();
for (uint8 i = 0; i < ZJH_MAX_COUNT; i++)
{
// 有牌值则跳过;
if (m_arySpriteCard[i]->getTag()>0)
{
continue;
}
m_arySpriteCard[i]->setTag(aryCardData[i]);
m_arySpriteCard[i]->setVisible(true);
CallFuncN* callback = CallFuncN::create([=](Node* pNode){
Sprite* pCardSprite = static_cast<Sprite*>(pNode);
//加载牌;
std::string strName = StringUtils::format("L_0x%02X.png", pCardSprite->getTag());
SpriteFrame* pSpriteFrame = pSpriteFrameCache->getSpriteFrameByName(strName);
CC_ASSERT(pSpriteFrame != nullptr);
pCardSprite->setSpriteFrame(pSpriteFrame);
});
Action* pAction = Sequence::create(OrbitCamera::create(0.25f, 1, 0, 0, 90, 0, 0), callback, OrbitCamera::create(0.25f, 1, 0, 270, 90, 0, 0), nullptr);
m_arySpriteCard[i]->runAction(pAction);
}
}
void ZJHGamePlayer::showHandStatus(uint8 cbHandStatus)
{
m_pSprStatus->setVisible(true);
if (ZJH_ST_GAMING_LOOK == cbHandStatus)
{
m_pSprStatus->setTexture("Games/ZJH/Table/imgLookCard.png");
}
else if (ZJH_ST_GAMING_LOSE == cbHandStatus)
{
m_pSprStatus->setTexture("Games/ZJH/Table/imgCompLoser.png");
}
else if (ZJH_ST_GAMING_GIVEUP == cbHandStatus)
{
m_pSprStatus->setTexture("Games/ZJH/Table/imgGiveUp.png");
}
else
{
m_pSprStatus->setVisible(false);
}
}
//隐藏手牌状态;
void ZJHGamePlayer::hideHandStatus()
{
m_pSprStatus->setVisible(false);
}
//获取头像位置;
const Vec2 ZJHGamePlayer::getHeadPos()
{
CC_ASSERT(m_pSprHead != nullptr);
Vec2 pos = m_pSprHead->convertToWorldSpace(Vec2(m_pSprHead->getContentSize().width / 2, m_pSprHead->getContentSize().height / 2));
return Vec2(pos.x, pos.y);
}
//获取手牌位置;
const Vec2 ZJHGamePlayer::getHandCardPos(uint8 cbIndex)
{
CC_ASSERT(cbIndex<ZJH_MAX_COUNT);
if (cbIndex >= ZJH_MAX_COUNT)
{
cbIndex = 0;
}
Sprite* sprCard = m_arySpriteCard[cbIndex];
CC_ASSERT(sprCard!=nullptr);
return sprCard->getParent()->convertToWorldSpace(sprCard->getPosition());
}
//转换到世界坐标系;
Vec2 ZJHGamePlayer::convertToWorldSpace(const Vec2& nodePoint) const
{
CC_ASSERT(m_pRootLayout != nullptr);
return m_pRootLayout->convertToWorldSpace(nodePoint);
}
//增加子节点;
void ZJHGamePlayer::addChild(Node* pNode)
{
CC_ASSERT(m_pRootLayout != nullptr);
m_pRootLayout->addChild(pNode);
}
void ZJHGamePlayer::upPlayerState()
{
//状态发生改变的用户;
uint8 cbUserStatus = GetUserStatus();
switch (cbUserStatus)
{
case US_SIT:
{
break;
}
case US_READY:
{
setReadyVisible(true);
setOfflineVisible(false);
break;
}
case US_PLAYING:
{
setReadyVisible(false);
setOfflineVisible(false);
break;
}
case US_OFFLINE:
{
setOfflineVisible(true);
break;
}
default:
break;
}
}
//点击比牌按钮;
void ZJHGamePlayer::onCompareButtonClick(Ref* pSender)
{
if (_fnCompareCardSelect != nullptr)
{
_fnCompareCardSelect(GetChairID());
}
}