823 lines
20 KiB
C++
823 lines
20 KiB
C++
|
|
#include "SimpleAudioEngine.h"
|
|||
|
|
#include "ImagicDownManager.h"
|
|||
|
|
#include "ActionEx.h"
|
|||
|
|
#include "13S_CMD.h"
|
|||
|
|
#include "13S_GameLogic.h"
|
|||
|
|
#include "13S_GamePlayer.h"
|
|||
|
|
#include "13S_BigCardSprite.h"
|
|||
|
|
|
|||
|
|
SSS_GamePlayer::SSS_GamePlayer(WORD wViewID, Layout* pRootLayout) :
|
|||
|
|
GamePlayer(NULL), m_bReady(false), m_cbViewID(wViewID), m_pRootLayout(pRootLayout)
|
|||
|
|
{
|
|||
|
|
init();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
SSS_GamePlayer::~SSS_GamePlayer()
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
bool SSS_GamePlayer::init()
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>dz<EFBFBD>;
|
|||
|
|
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);
|
|||
|
|
|
|||
|
|
//ͷ<><CDB7>;
|
|||
|
|
m_pSprHead = static_cast<Sprite*>(m_pBtnUserHead->getChildByName("imgUserHead"));
|
|||
|
|
CC_ASSERT(m_pSprHead!=nullptr);
|
|||
|
|
m_pSprHead->setVisible(false);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>;
|
|||
|
|
m_pTxtChip = static_cast<TextBMFont*>(m_pRootLayout->getChildByName("txtChip"));
|
|||
|
|
CC_ASSERT(m_pTxtChip != nullptr);
|
|||
|
|
m_pTxtChip->setString("");
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>;
|
|||
|
|
m_pTxtScore = static_cast<Text*>(m_pRootLayout->getChildByName("txtScore"));
|
|||
|
|
CC_ASSERT(m_pTxtScore != nullptr);
|
|||
|
|
m_pTxtScore->setString("");
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־;
|
|||
|
|
m_pSprOwner = static_cast<Sprite*>(m_pRootLayout->getChildByName("sprOwner"));
|
|||
|
|
CC_ASSERT(m_pSprOwner != nullptr);
|
|||
|
|
m_pSprOwner->setVisible(false);
|
|||
|
|
|
|||
|
|
//ׯ<><D7AF>־;
|
|||
|
|
m_pSprBanker = static_cast<Sprite*>(m_pRootLayout->getChildByName("sprBanker"));
|
|||
|
|
CC_ASSERT(m_pSprBanker != nullptr);
|
|||
|
|
m_pSprBanker->setVisible(false);
|
|||
|
|
|
|||
|
|
//<><D7BC><EFBFBD><EFBFBD>־;
|
|||
|
|
m_pSprReady = static_cast<Sprite*>(m_pRootLayout->getChildByName("sprReadyIcon"));
|
|||
|
|
CC_ASSERT(m_pSprReady != nullptr);
|
|||
|
|
m_pSprReady->setVisible(false);
|
|||
|
|
|
|||
|
|
//״̬<D7B4><CCAC>־;
|
|||
|
|
m_pSprStatus = static_cast<Sprite*>(m_pRootLayout->getChildByName("sprStatus"));
|
|||
|
|
CC_ASSERT(m_pSprStatus != nullptr);
|
|||
|
|
m_pSprStatus->setVisible(false);
|
|||
|
|
|
|||
|
|
m_pArmatureStatus = static_cast<Armature*>(m_pRootLayout->getChildByName("armaStatusNode"));
|
|||
|
|
CC_ASSERT(m_pArmatureStatus != nullptr);
|
|||
|
|
m_pArmatureStatus->setVisible(false);
|
|||
|
|
|
|||
|
|
m_pArmaCardTypeNode = static_cast<Armature*>(m_pRootLayout->getChildByName("armaCardTypeNode"));
|
|||
|
|
CC_ASSERT(m_pArmaCardTypeNode != nullptr);
|
|||
|
|
m_pArmaCardTypeNode->setVisible(false);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>߱<EFBFBD>־;
|
|||
|
|
m_pSprOffline = static_cast<Sprite*>(m_pRootLayout->getChildByName("sprOffline"));
|
|||
|
|
CC_ASSERT(m_pSprOffline != nullptr);
|
|||
|
|
m_pSprOffline->setVisible(false);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>ֲ<EFBFBD>;
|
|||
|
|
m_pSprSepShadow = static_cast<Sprite*>(m_pRootLayout->getChildByName("imgSepShadow"));
|
|||
|
|
CC_ASSERT(m_pSprSepShadow != nullptr);
|
|||
|
|
m_pSprSepShadow->setVisible(false);
|
|||
|
|
|
|||
|
|
zeromemory(m_arySpriteCard, sizeof(m_arySpriteCard));
|
|||
|
|
for (int i = 0; i < SSS_GROUP_COUNT; i++)
|
|||
|
|
{
|
|||
|
|
auto panelCard = static_cast<Layout*>(m_pRootLayout->getChildByName(StringUtils::format("panelHandCard%d", i)));
|
|||
|
|
CC_ASSERT(panelCard != nullptr);
|
|||
|
|
|
|||
|
|
m_aryPanelHandCard[i] = panelCard;
|
|||
|
|
|
|||
|
|
int nItemCount = i>0 ? SSS_MAX_ITEM_COUNT : SSS_MIN_ITEM_COUNT;
|
|||
|
|
for (int j = 0; j < nItemCount; j++)
|
|||
|
|
{
|
|||
|
|
Sprite* sprCard = static_cast<Sprite*>(panelCard->getChildByName(StringUtils::format("sprCard%d", j)));
|
|||
|
|
CC_ASSERT(sprCard!=nullptr);
|
|||
|
|
sprCard->setVisible(false);
|
|||
|
|
|
|||
|
|
m_arySpriteCard[i][j] = sprCard;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
Sprite* sprCardType = static_cast<Sprite*>(m_pRootLayout->getChildByName(StringUtils::format("sprCardType%d", i)));
|
|||
|
|
CC_ASSERT(sprCardType != nullptr);
|
|||
|
|
sprCardType->setVisible(false);
|
|||
|
|
|
|||
|
|
m_arySprCardType[i] = sprCardType;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
m_pPanelGameScore = static_cast<Layout*>(m_pRootLayout->getChildByName("panelGameScore"));
|
|||
|
|
CC_ASSERT(m_pPanelGameScore != nullptr);
|
|||
|
|
m_pPanelGameScore->setVisible(false);
|
|||
|
|
|
|||
|
|
for (int i = 0; i < SSS_GROUP_COUNT; i++)
|
|||
|
|
{
|
|||
|
|
string strName = StringUtils::format("atlasScore%d", i);
|
|||
|
|
m_aryTxtAtlasScore[i] = static_cast<TextAtlas*>(m_pPanelGameScore->getChildByName(strName));
|
|||
|
|
CC_ASSERT(m_aryTxtAtlasScore[i]!=nullptr);
|
|||
|
|
m_aryTxtAtlasScore[i]->setString("");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F>ܷ<EFBFBD>;
|
|||
|
|
m_pTxtAtlasScoreCount = static_cast<TextAtlas*>(m_pPanelGameScore->getChildByName("atlasScoreCount"));
|
|||
|
|
CC_ASSERT(m_pTxtAtlasScoreCount != nullptr);
|
|||
|
|
m_pTxtAtlasScoreCount->setString("");
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
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);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
m_pTxtChatInfo = static_cast<Text*>(panelChat->getChildByName("txtChatMsg"));
|
|||
|
|
CC_ASSERT(m_pTxtChatInfo != nullptr);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
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);
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void SSS_GamePlayer::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("<22><><EFBFBD>ã<EFBFBD><C3A3><EFBFBD>Ŀ<EFBFBD>궯<EFBFBD><EAB6AF><EFBFBD><EFBFBD><EFBFBD>跴<EFBFBD><E8B7B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>궯<EFBFBD><EAB6AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ӿ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>"));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void SSS_GamePlayer::PlayerLeave()
|
|||
|
|
{
|
|||
|
|
if (m_isAllowLeave)
|
|||
|
|
{
|
|||
|
|
setInfoVisible(false);
|
|||
|
|
setReadyVisible(false);
|
|||
|
|
setOfflineVisible(false);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
void SSS_GamePlayer::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);
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
//<2F>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
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));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
void SSS_GamePlayer::showVoiceBubble()
|
|||
|
|
{
|
|||
|
|
CC_ASSERT(m_pVoiceBubble != nullptr);
|
|||
|
|
|
|||
|
|
m_pVoiceBubble->setVisible(true);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD>֡<EFBFBD><D6A1><EFBFBD><EFBFBD>;
|
|||
|
|
auto action = CSLoader::createTimeline("Games/13S/PlayerVoiceNode.csb");
|
|||
|
|
action->gotoFrameAndPlay(0);
|
|||
|
|
m_pSprVoiceAni->runAction(action);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
void SSS_GamePlayer::hideVoiceBubble()
|
|||
|
|
{
|
|||
|
|
CC_ASSERT(m_pVoiceBubble != nullptr);
|
|||
|
|
|
|||
|
|
m_pSprVoiceAni->stopAllActions();
|
|||
|
|
m_pVoiceBubble->setVisible(false);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ý<EFBFBD><C3BD><EFBFBD>;
|
|||
|
|
void SSS_GamePlayer::resetUI(bool bAll/* = false*/)
|
|||
|
|
{
|
|||
|
|
if ( bAll )
|
|||
|
|
{
|
|||
|
|
setInfoVisible(false);
|
|||
|
|
setReadyVisible(false);
|
|||
|
|
setOfflineVisible(false);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
////<2F><><EFBFBD>߱<EFBFBD>־;
|
|||
|
|
//m_pSprOffline->setVisible(false);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
for (int i = 0; i < SSS_GROUP_COUNT; i++)
|
|||
|
|
{
|
|||
|
|
int nItemCount = i > 0 ? SSS_MAX_ITEM_COUNT : SSS_MIN_ITEM_COUNT;
|
|||
|
|
for (int j = 0; j < nItemCount; j++)
|
|||
|
|
{
|
|||
|
|
m_arySpriteCard[i][j]->setVisible(false);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
m_aryTxtAtlasScore[i]->setString("");
|
|||
|
|
m_arySprCardType[i]->setVisible(false);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
m_pSprStatus->setVisible(false);
|
|||
|
|
m_pSprSepShadow->setVisible(false);
|
|||
|
|
|
|||
|
|
ArmatureAnimation* pAniStatus = m_pArmatureStatus->getAnimation();
|
|||
|
|
if (pAniStatus != nullptr)
|
|||
|
|
{
|
|||
|
|
pAniStatus->stop();
|
|||
|
|
}
|
|||
|
|
m_pArmatureStatus->setVisible(false);
|
|||
|
|
|
|||
|
|
ArmatureAnimation* pAniCardType = m_pArmaCardTypeNode->getAnimation();
|
|||
|
|
if (pAniCardType != nullptr)
|
|||
|
|
{
|
|||
|
|
pAniCardType->stop();
|
|||
|
|
}
|
|||
|
|
m_pArmaCardTypeNode->setVisible(false);
|
|||
|
|
|
|||
|
|
m_pPanelGameScore->setVisible(false);
|
|||
|
|
|
|||
|
|
memset(m_aryGameScore, 0, sizeof(m_aryGameScore));
|
|||
|
|
memset(m_aryCardType, 0, sizeof(m_aryCardType));
|
|||
|
|
memset(m_aryFrontCard, 0, sizeof(m_aryFrontCard));
|
|||
|
|
memset(m_aryMidCard, 0, sizeof(m_aryMidCard));
|
|||
|
|
memset(m_aryBackCard, 0, sizeof(m_aryBackCard));
|
|||
|
|
|
|||
|
|
m_nScoreCount = 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD>;
|
|||
|
|
void SSS_GamePlayer::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);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>;
|
|||
|
|
void SSS_GamePlayer::setOwner(bool bOwenr)
|
|||
|
|
{
|
|||
|
|
CC_ASSERT(m_pSprOwner != nullptr);
|
|||
|
|
m_pSprOwner->setVisible(bOwenr);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊׯ<CEAA><D7AF>;
|
|||
|
|
bool SSS_GamePlayer::setBankerVisible(bool bVisible)
|
|||
|
|
{
|
|||
|
|
CC_ASSERT(m_pSprBanker != nullptr);
|
|||
|
|
m_pSprBanker->setVisible(bVisible);
|
|||
|
|
|
|||
|
|
if (bVisible)
|
|||
|
|
{
|
|||
|
|
float fscale = m_pSprBanker->getScale();
|
|||
|
|
m_pSprBanker->setScale(0.2f);
|
|||
|
|
auto actCardType = Sequence::create(Show::create(), EaseElasticOut::create(ScaleTo::create(0.8f, fscale)), nullptr);
|
|||
|
|
m_pSprBanker->runAction(actCardType);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><D7BC>״̬;
|
|||
|
|
void SSS_GamePlayer::setReadyVisible(bool bVisible)
|
|||
|
|
{
|
|||
|
|
CC_ASSERT(m_pSprReady != nullptr);
|
|||
|
|
m_pSprReady->setVisible(bVisible);
|
|||
|
|
|
|||
|
|
m_bReady = bVisible;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ö<EFBFBD><C3B6><EFBFBD>״̬;
|
|||
|
|
void SSS_GamePlayer::setOfflineVisible(bool bVisible)
|
|||
|
|
{
|
|||
|
|
CC_ASSERT(m_pSprOffline != nullptr);
|
|||
|
|
m_pSprOffline->setVisible(bVisible);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
void SSS_GamePlayer::addOneCard(uint8 cbData, uint8 cbRowIndex, uint8 cbColIndex)
|
|||
|
|
{
|
|||
|
|
int nItemCount = cbRowIndex > 0 ? SSS_MAX_ITEM_COUNT : SSS_MIN_ITEM_COUNT;
|
|||
|
|
CC_ASSERT(cbRowIndex<SSS_GROUP_COUNT&&cbColIndex<nItemCount);
|
|||
|
|
if (cbColIndex>=nItemCount)
|
|||
|
|
{
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
SpriteFrameCache* pSpriteFrameCache = SpriteFrameCache::getInstance();
|
|||
|
|
std::string strName = StringUtils::format("S_0x%02X.png", cbData);
|
|||
|
|
SpriteFrame* pSpriteFrame = pSpriteFrameCache->getSpriteFrameByName(strName);
|
|||
|
|
CC_ASSERT(pSpriteFrame != nullptr);
|
|||
|
|
|
|||
|
|
m_arySpriteCard[cbRowIndex][cbColIndex]->setSpriteFrame(pSpriteFrame);
|
|||
|
|
m_arySpriteCard[cbRowIndex][cbColIndex]->setVisible(true);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>»<EFBFBD><C2BB><EFBFBD>;
|
|||
|
|
void SSS_GamePlayer::updateScore()
|
|||
|
|
{
|
|||
|
|
CC_ASSERT(m_pTxtScore != nullptr);
|
|||
|
|
SCORE lScore = GetUserScore();
|
|||
|
|
m_pTxtScore->setString(utility::toString<SCORE>(lScore));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>³<EFBFBD><C2B3><EFBFBD>;
|
|||
|
|
void SSS_GamePlayer::updateUserChip(SCORE lChipScore)
|
|||
|
|
{
|
|||
|
|
CC_ASSERT(m_pTxtChip != nullptr);
|
|||
|
|
if (lChipScore != 0)
|
|||
|
|
{
|
|||
|
|
std::string strChipScore = StringUtils::format("x%d", lChipScore);
|
|||
|
|
m_pTxtChip->setString(strChipScore);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
m_pTxtChip->setString("");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void SSS_GamePlayer::showGameScore(SCORE aryScore[SSS_GROUP_COUNT])
|
|||
|
|
{
|
|||
|
|
//m_pPanelGameScore->setVisible(true);
|
|||
|
|
//for (int i = 1; i < BJ_GROUP_COUNT; i++)
|
|||
|
|
//{
|
|||
|
|
// if (aryScore[i] >= 0)
|
|||
|
|
// {
|
|||
|
|
// m_aryTxtAtlasScore[i]->setString(StringUtils::format("/%d", aryScore[i]));
|
|||
|
|
// }
|
|||
|
|
// else
|
|||
|
|
// {
|
|||
|
|
// m_aryTxtAtlasScore[i]->setString(StringUtils::format(".%d", std::abs(aryScore[i])));
|
|||
|
|
// }
|
|||
|
|
//}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void SSS_GamePlayer::setGameScore(SCORE aryScore[SSS_GROUP_COUNT], uint16 aryCardType[SSS_GROUP_COUNT], bool bShowScore/* = true*/)
|
|||
|
|
{
|
|||
|
|
m_pPanelGameScore->setVisible(bShowScore);
|
|||
|
|
|
|||
|
|
ArmatureAnimation* pArmatureStatus = m_pArmatureStatus->getAnimation();
|
|||
|
|
if (pArmatureStatus != nullptr)
|
|||
|
|
{
|
|||
|
|
pArmatureStatus->stop();
|
|||
|
|
}
|
|||
|
|
m_pArmatureStatus->setVisible(false);
|
|||
|
|
|
|||
|
|
for (uint8 i = 0; i < SSS_GROUP_COUNT; i++)
|
|||
|
|
{
|
|||
|
|
m_aryGameScore[i] = aryScore[i];
|
|||
|
|
m_aryCardType[i] = aryCardType[i];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
m_nScoreCount = 0;
|
|||
|
|
|
|||
|
|
m_pTxtAtlasScoreCount->setProperty("0", "Games/13S/Table/imgPositiveFont.png", 26, 35, "/");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void SSS_GamePlayer::playScoreAni(int nIndex, const std::function<void()>& fnCallback, bool bPlaySound, bool bPlaySubScore/* = true*/)
|
|||
|
|
{
|
|||
|
|
CC_ASSERT(nIndex < SSS_GROUP_COUNT);
|
|||
|
|
|
|||
|
|
uint8* pTrickCard = nullptr;
|
|||
|
|
if (0 == nIndex)
|
|||
|
|
{
|
|||
|
|
pTrickCard = m_aryFrontCard;
|
|||
|
|
}
|
|||
|
|
else if (1 == nIndex)
|
|||
|
|
{
|
|||
|
|
pTrickCard = m_aryMidCard;
|
|||
|
|
}
|
|||
|
|
else if (2 == nIndex)
|
|||
|
|
{
|
|||
|
|
pTrickCard = m_aryBackCard;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
SpriteFrameCache* pSpriteFrameCache = SpriteFrameCache::getInstance();
|
|||
|
|
int nItemCount = nIndex > 0 ? SSS_MAX_ITEM_COUNT : SSS_MIN_ITEM_COUNT;
|
|||
|
|
for (uint8 j = 0; j < nItemCount; j++)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
std::string strName = StringUtils::format("S_0x%02X.png", pTrickCard[j]);
|
|||
|
|
SpriteFrame* pSpriteFrame = pSpriteFrameCache->getSpriteFrameByName(strName);
|
|||
|
|
CC_ASSERT(pSpriteFrame != nullptr);
|
|||
|
|
|
|||
|
|
m_arySpriteCard[nIndex][j]->setSpriteFrame(pSpriteFrame);
|
|||
|
|
m_arySpriteCard[nIndex][j]->setVisible(true);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>;
|
|||
|
|
Sprite* sprCardType = m_arySprCardType[nIndex];
|
|||
|
|
string strImagePath = C13SGameLogic::getCardTypeImagePath(m_aryCardType[nIndex]);
|
|||
|
|
if (!strImagePath.empty())
|
|||
|
|
{
|
|||
|
|
sprCardType->setTexture(strImagePath);
|
|||
|
|
|
|||
|
|
sprCardType->setScaleX(0.5f);
|
|||
|
|
auto actCardType = Sequence::create(Show::create(), EaseElasticOut::create(ScaleTo::create(0.8f, 1)), Hide::create(), nullptr);
|
|||
|
|
sprCardType->runAction(actCardType);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (bPlaySubScore)
|
|||
|
|
{
|
|||
|
|
playSubScoreAni(nIndex, m_aryGameScore[nIndex]);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CallFunc* func = CallFunc::create([=]() {
|
|||
|
|
if (fnCallback != nullptr)
|
|||
|
|
{
|
|||
|
|
fnCallback();
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>;
|
|||
|
|
m_aryPanelHandCard[nIndex]->setScale(0.5f);
|
|||
|
|
auto actSeq = Sequence::create(EaseElasticOut::create(ScaleTo::create(0.8f, 1.0f)), DelayTime::create(0.1f), func, nullptr);
|
|||
|
|
m_aryPanelHandCard[nIndex]->runAction(actSeq);
|
|||
|
|
|
|||
|
|
//if (SSS_VIEW_SELF_ID==m_cbViewID)
|
|||
|
|
if (bPlaySound)
|
|||
|
|
{
|
|||
|
|
std::string strSoundPath = C13SGameLogic::getCardTypeSoundPath(GetGender(), m_aryCardType[nIndex]);
|
|||
|
|
|
|||
|
|
CocosDenshion::SimpleAudioEngine* pAudio = CocosDenshion::SimpleAudioEngine::getInstance();
|
|||
|
|
pAudio->playEffect(strSoundPath.c_str());
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void SSS_GamePlayer::playSubScoreAni(int nIndex, SCORE lScore, const std::function<void()>& fnCallback)
|
|||
|
|
{
|
|||
|
|
// <20><><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>;
|
|||
|
|
TextAtlas* pTempAtlasScore = m_aryTxtAtlasScore[nIndex];
|
|||
|
|
TextAtlas* pAtlasScore = (TextAtlas*)pTempAtlasScore->clone();
|
|||
|
|
pTempAtlasScore->getParent()->addChild(pAtlasScore);
|
|||
|
|
pAtlasScore->setScale(0);
|
|||
|
|
|
|||
|
|
if (lScore >= 0)
|
|||
|
|
{
|
|||
|
|
pAtlasScore->setProperty(StringUtils::format("/%d", lScore), "Games/13S/Table/imgPositiveFont.png", 26, 35, "/");
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
pAtlasScore->setProperty(StringUtils::format("/%d", std::abs(lScore)), "Games/13S/Table/imgNegativeFont.png", 26, 35, "/");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD>;
|
|||
|
|
auto act = EaseElasticOut::create(ScaleTo::create(0.3f, 1));
|
|||
|
|
const Vec2 ptCount = m_pTxtAtlasScoreCount->getPosition();
|
|||
|
|
auto actMoveTo = MoveTo::create(0.4f, ptCount);
|
|||
|
|
auto actSpawn = Spawn::create(actMoveTo, FadeTo::create(0.4f, 80), nullptr);
|
|||
|
|
CallFunc* funcScore = CallFunc::create([=]() {
|
|||
|
|
m_nScoreCount += lScore;
|
|||
|
|
|
|||
|
|
if (m_nScoreCount >= 0)
|
|||
|
|
{
|
|||
|
|
m_pTxtAtlasScoreCount->setProperty(StringUtils::format("/%d", m_nScoreCount), "Games/13S/Table/imgPositiveFont.png", 26, 35, "/");
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
m_pTxtAtlasScoreCount->setProperty(StringUtils::format("/%d", std::abs(m_nScoreCount)), "Games/13S/Table/imgNegativeFont.png", 26, 35, "/");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
m_pTxtAtlasScoreCount->setScale(0.5f);
|
|||
|
|
m_pTxtAtlasScoreCount->runAction(EaseElasticOut::create(ScaleTo::create(0.3f, 1)));
|
|||
|
|
|
|||
|
|
if (fnCallback!=nullptr)
|
|||
|
|
{
|
|||
|
|
fnCallback();
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
pAtlasScore->runAction(Sequence::create(act, actSpawn, funcScore, RemoveSelf::create(), nullptr));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><>ʾ<EFBFBD><CABE>;
|
|||
|
|
void SSS_GamePlayer::showCard(uint8 aryFrontCard[SSS_MIN_ITEM_COUNT], uint8 aryMidCard[SSS_MAX_ITEM_COUNT], uint8 aryBackCard[SSS_MAX_ITEM_COUNT], uint8 cbHandStatus, bool bInitCard/* = false*/)
|
|||
|
|
{
|
|||
|
|
SpriteFrameCache* pSpriteFrameCache = SpriteFrameCache::getInstance();
|
|||
|
|
|
|||
|
|
if (bInitCard)
|
|||
|
|
{
|
|||
|
|
for (uint8 i = 0; i < SSS_GROUP_COUNT; i++)
|
|||
|
|
{
|
|||
|
|
int nItemCount = i > 0 ? SSS_MAX_ITEM_COUNT : SSS_MIN_ITEM_COUNT;
|
|||
|
|
for (uint8 j = 0; j < nItemCount; j++)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
SpriteFrame* pSpriteFrame = pSpriteFrameCache->getSpriteFrameByName("S_0x00.png");
|
|||
|
|
CC_ASSERT(pSpriteFrame != nullptr);
|
|||
|
|
|
|||
|
|
m_arySpriteCard[i][j]->setSpriteFrame(pSpriteFrame);
|
|||
|
|
m_arySpriteCard[i][j]->setVisible(true);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
for (uint8 i = 0; i < SSS_GROUP_COUNT; i++)
|
|||
|
|
{
|
|||
|
|
uint8* pTrickCard = nullptr;
|
|||
|
|
if (0 == i)
|
|||
|
|
{
|
|||
|
|
pTrickCard = aryFrontCard;
|
|||
|
|
}
|
|||
|
|
else if (1 == i)
|
|||
|
|
{
|
|||
|
|
pTrickCard = aryMidCard;
|
|||
|
|
}
|
|||
|
|
else if (2 == i)
|
|||
|
|
{
|
|||
|
|
pTrickCard = aryBackCard;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
int nItemCount = i > 0 ? SSS_MAX_ITEM_COUNT : SSS_MIN_ITEM_COUNT;
|
|||
|
|
for (uint8 j = 0; j < nItemCount; j++)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
std::string strName = StringUtils::format("S_0x%02X.png", pTrickCard[j]);
|
|||
|
|
SpriteFrame* pSpriteFrame = pSpriteFrameCache->getSpriteFrameByName(strName);
|
|||
|
|
CC_ASSERT(pSpriteFrame != nullptr);
|
|||
|
|
|
|||
|
|
m_arySpriteCard[i][j]->setSpriteFrame(pSpriteFrame);
|
|||
|
|
m_arySpriteCard[i][j]->setVisible(true);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
for (uint8 i = 0; i < SSS_MIN_ITEM_COUNT; i++)
|
|||
|
|
{
|
|||
|
|
m_aryFrontCard[i] = aryFrontCard[i];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
for (uint8 i = 0; i < SSS_MAX_ITEM_COUNT; i++)
|
|||
|
|
{
|
|||
|
|
m_aryMidCard[i] = aryMidCard[i];
|
|||
|
|
m_aryBackCard[i] = aryBackCard[i];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
showHandStatus(cbHandStatus);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void SSS_GamePlayer::showHandStatus(uint8 cbHandStatus)
|
|||
|
|
{
|
|||
|
|
if (SSS_HAND_STATUS_GIVEUP == cbHandStatus)
|
|||
|
|
{
|
|||
|
|
ArmatureAnimation* pAniStatus = m_pArmatureStatus->getAnimation();
|
|||
|
|
if (pAniStatus != nullptr)
|
|||
|
|
{
|
|||
|
|
pAniStatus->stop();
|
|||
|
|
}
|
|||
|
|
m_pArmatureStatus->setVisible(false);
|
|||
|
|
|
|||
|
|
m_pSprStatus->setVisible(true);
|
|||
|
|
m_pSprStatus->setTexture("Games/13S/Table/imgGiveUp.png");
|
|||
|
|
}
|
|||
|
|
else if (SSS_HAND_STATUS_DISORDER == cbHandStatus)
|
|||
|
|
{
|
|||
|
|
m_pArmatureStatus->setVisible(true);
|
|||
|
|
ArmatureAnimation* pAniStatus = m_pArmatureStatus->getAnimation();
|
|||
|
|
if (pAniStatus != nullptr)
|
|||
|
|
{
|
|||
|
|
pAniStatus->play("Operation", -1, 1);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else if (SSS_HAND_STATUS_SORTED == cbHandStatus)
|
|||
|
|
{
|
|||
|
|
//m_pSprStatus->setVisible(true);
|
|||
|
|
//m_pSprStatus->setTexture("Games/BiJi/Table/imgCompare.png");
|
|||
|
|
m_pArmatureStatus->setVisible(true);
|
|||
|
|
ArmatureAnimation* pAniStatus = m_pArmatureStatus->getAnimation();
|
|||
|
|
if (pAniStatus != nullptr)
|
|||
|
|
{
|
|||
|
|
pAniStatus->play("OperationOK", -1, 0);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
m_pSprStatus->setVisible(false);
|
|||
|
|
|
|||
|
|
ArmatureAnimation* pAniStatus = m_pArmatureStatus->getAnimation();
|
|||
|
|
if (pAniStatus != nullptr)
|
|||
|
|
{
|
|||
|
|
pAniStatus->stop();
|
|||
|
|
}
|
|||
|
|
m_pArmatureStatus->setVisible(false);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD>;
|
|||
|
|
void SSS_GamePlayer::showSepShadow(bool bVisible)
|
|||
|
|
{
|
|||
|
|
m_pSprSepShadow->setVisible(bVisible);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
void SSS_GamePlayer::showCardType(uint8 cbSpecialCardType)
|
|||
|
|
{
|
|||
|
|
std::string strAniName = "";
|
|||
|
|
switch (cbSpecialCardType)
|
|||
|
|
{
|
|||
|
|
case SSS_CT_THREE_STRAIGHT:
|
|||
|
|
{
|
|||
|
|
strAniName = "Class11";
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
case SSS_CT_THREE_FLUSH:
|
|||
|
|
{
|
|||
|
|
strAniName = "Class10";
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
case SSS_CT_SIXPAIR:
|
|||
|
|
{
|
|||
|
|
strAniName = "Class9";
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
case SSS_CT_FIVEPAIR_THREE:
|
|||
|
|
{
|
|||
|
|
strAniName = "Class5";
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
case SSS_CT_FOUR_THREESAME:
|
|||
|
|
{
|
|||
|
|
strAniName = "Class4";
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
case SSS_CT_SAME_COLOR:
|
|||
|
|
{
|
|||
|
|
strAniName = "Class8";
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
case SSS_CT_ALL_SMALL:
|
|||
|
|
{
|
|||
|
|
strAniName = "Class7";
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
case SSS_CT_ALL_BIG:
|
|||
|
|
{
|
|||
|
|
strAniName = "Class6";
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
case SSS_CT_THREE_BOMB:
|
|||
|
|
{
|
|||
|
|
strAniName = "Class1";
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
case SSS_CT_THREE_STRAIGHTFLUSH:
|
|||
|
|
{
|
|||
|
|
strAniName = "Class2";
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
case SSS_CT_TWELVE_KING:
|
|||
|
|
{
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
case SSS_CT_THIRTEEN:
|
|||
|
|
{
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
case SSS_CT_THIRTEEN_FLUSH:
|
|||
|
|
{
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
default:
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (strAniName.empty())
|
|||
|
|
{
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
m_pArmaCardTypeNode->setVisible(true);
|
|||
|
|
ArmatureAnimation* pAniCardTypeNode = m_pArmaCardTypeNode->getAnimation();
|
|||
|
|
if (pAniCardTypeNode != nullptr)
|
|||
|
|
{
|
|||
|
|
pAniCardTypeNode->play(strAniName, -1, 0);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><>ȡͷ<C8A1><CDB7>λ<EFBFBD><CEBB>;
|
|||
|
|
const Vec2 SSS_GamePlayer::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);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>;
|
|||
|
|
const Vec2 SSS_GamePlayer::getHandCardPos(uint8 cbRowIndex, uint8 cbColIndex)
|
|||
|
|
{
|
|||
|
|
int nItemCount = cbRowIndex > 0 ? SSS_MAX_ITEM_COUNT : SSS_MIN_ITEM_COUNT;
|
|||
|
|
CC_ASSERT(cbRowIndex < SSS_GROUP_COUNT&&cbColIndex < nItemCount);
|
|||
|
|
if (cbColIndex >= nItemCount)
|
|||
|
|
{
|
|||
|
|
return Vec2::ZERO;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
Sprite* sprCard = m_arySpriteCard[cbRowIndex][cbColIndex];
|
|||
|
|
CC_ASSERT(sprCard!=nullptr);
|
|||
|
|
|
|||
|
|
return sprCard->getParent()->convertToWorldSpace(sprCard->getPosition());
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ;
|
|||
|
|
Vec2 SSS_GamePlayer::convertToWorldSpace(const Vec2& nodePoint) const
|
|||
|
|
{
|
|||
|
|
CC_ASSERT(m_pRootLayout != nullptr);
|
|||
|
|
return m_pRootLayout->convertToWorldSpace(nodePoint);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӽڵ<D3BD>;
|
|||
|
|
void SSS_GamePlayer::addChild(Node* pNode)
|
|||
|
|
{
|
|||
|
|
CC_ASSERT(m_pRootLayout != nullptr);
|
|||
|
|
m_pRootLayout->addChild(pNode);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void SSS_GamePlayer::upPlayerState()
|
|||
|
|
{
|
|||
|
|
//״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD>û<EFBFBD>;
|
|||
|
|
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;
|
|||
|
|
}
|
|||
|
|
}
|