239 lines
4.5 KiB
C++
239 lines
4.5 KiB
C++
|
|
#include "JoinScene.h"
|
|||
|
|
#include "Define.h"
|
|||
|
|
#include "Utility.h"
|
|||
|
|
|
|||
|
|
JoinScene::JoinScene()
|
|||
|
|
{
|
|||
|
|
memset(m_cbRoomID, 0xff, sizeof(m_cbRoomID));
|
|||
|
|
memset(m_SpriteNum, 0x0, sizeof(m_SpriteNum));
|
|||
|
|
memset(m_btnNum, 0x0, sizeof(m_btnNum));
|
|||
|
|
|
|||
|
|
m_isJoinRoom = true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
JoinScene::~JoinScene()
|
|||
|
|
{
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
bool JoinScene::init()
|
|||
|
|
{
|
|||
|
|
if (!Node::init())
|
|||
|
|
{
|
|||
|
|
return false;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
auto rootPanel = CSLoader::createNode("Platform/JoinScene.csb");
|
|||
|
|
CC_ASSERT(rootPanel != nullptr);
|
|||
|
|
this->addChild(rootPanel);
|
|||
|
|
|
|||
|
|
m_ImageViewBg = (ImageView*)rootPanel->getChildByName("Imagebg");
|
|||
|
|
CC_ASSERT(nullptr != m_ImageViewBg);
|
|||
|
|
|
|||
|
|
//<2F><>ȡ<EFBFBD>رհ<D8B1>ť
|
|||
|
|
auto btnClose = (Button*)m_ImageViewBg->getChildByName("btnClose");
|
|||
|
|
CC_ASSERT(btnClose != nullptr);
|
|||
|
|
|
|||
|
|
//ע<><D7A2><EFBFBD>رհ<D8B1>ť<EFBFBD>¼<EFBFBD>
|
|||
|
|
btnClose->addClickEventListener([this](Ref*){
|
|||
|
|
//this->removeFromParent();
|
|||
|
|
YSAudioEngine::Instance().playBtnClickEffect();
|
|||
|
|
this->popScene();
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
m_txtTitle = (Text*)m_ImageViewBg->getChildByName("txtTitle");
|
|||
|
|
CC_ASSERT(m_txtTitle != nullptr);
|
|||
|
|
|
|||
|
|
InitUI(m_ImageViewBg);
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void JoinScene::onEnter()
|
|||
|
|
{
|
|||
|
|
Node::onEnter();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void JoinScene::onEnterTransitionDidFinish()
|
|||
|
|
{
|
|||
|
|
Node::onEnterTransitionDidFinish();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void JoinScene::onExit()
|
|||
|
|
{
|
|||
|
|
Node::onExit();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// UI<55><49>ʼ<EFBFBD><CABC>
|
|||
|
|
void JoinScene::InitUI(Node* rootPanel)
|
|||
|
|
{
|
|||
|
|
if (nullptr == rootPanel) return;
|
|||
|
|
|
|||
|
|
for (int i = 0; i < 6; i++)
|
|||
|
|
{
|
|||
|
|
std::string strKey = __String::createWithFormat("txtNum_%d", i)->getCString();
|
|||
|
|
m_SpriteNum[i] = (Text*)rootPanel->getChildByName(strKey);
|
|||
|
|
CC_ASSERT(m_SpriteNum[i]);
|
|||
|
|
if (nullptr == m_SpriteNum[i]) continue;
|
|||
|
|
|
|||
|
|
m_SpriteNum[i]->setString("");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
for (int j = 0; j < 10; j++)
|
|||
|
|
{
|
|||
|
|
std::string strKey = __String::createWithFormat("btn_num_%d", j)->getCString();
|
|||
|
|
m_btnNum[j] = (Button*)rootPanel->getChildByName(strKey);
|
|||
|
|
CC_ASSERT(m_btnNum[j] != nullptr);
|
|||
|
|
|
|||
|
|
m_btnNum[j]->addClickEventListener(CC_CALLBACK_1(JoinScene::onClickNumber, this));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// ɾ<><C9BE>
|
|||
|
|
auto btnDel = (Button*)rootPanel->getChildByName("btn_del");
|
|||
|
|
CC_ASSERT(btnDel != nullptr);
|
|||
|
|
|
|||
|
|
btnDel->addClickEventListener([this](Ref* obj){
|
|||
|
|
|
|||
|
|
YSAudioEngine::Instance().playBtnClickEffect();
|
|||
|
|
|
|||
|
|
for (int k = 5; k >= 0; k--)
|
|||
|
|
{
|
|||
|
|
if (m_cbRoomID[k] != 0xff)
|
|||
|
|
{
|
|||
|
|
m_cbRoomID[k] = 0xff;
|
|||
|
|
m_SpriteNum[k]->setString("");
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD>
|
|||
|
|
auto btnC = (Button*)rootPanel->getChildByName("btn_C");
|
|||
|
|
CC_ASSERT(btnC != nullptr);
|
|||
|
|
|
|||
|
|
btnC->addClickEventListener([this](Ref* pSender){
|
|||
|
|
YSAudioEngine::Instance().playBtnClickEffect();
|
|||
|
|
|
|||
|
|
for (int k = 5; k >= 0; k--)
|
|||
|
|
{
|
|||
|
|
m_cbRoomID[k] = 0xff;
|
|||
|
|
m_SpriteNum[k]->setString("");
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void JoinScene::onClickNumber(Ref* obj)
|
|||
|
|
{
|
|||
|
|
YSAudioEngine::Instance().playBtnClickEffect();
|
|||
|
|
|
|||
|
|
int num = 0xff;
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>Ұ<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>
|
|||
|
|
for (int i = 0; i < 10; i++)
|
|||
|
|
{
|
|||
|
|
if (obj == m_btnNum[i])
|
|||
|
|
{
|
|||
|
|
num = i;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (0xff == num) return;
|
|||
|
|
|
|||
|
|
for (int k = 0; k < 6; k++)
|
|||
|
|
{
|
|||
|
|
if (m_cbRoomID[k] == 0xff)
|
|||
|
|
{
|
|||
|
|
m_cbRoomID[k] = num;
|
|||
|
|
|
|||
|
|
// <20><EFBFBD>ͼƬ
|
|||
|
|
std::string strKey = __String::createWithFormat("%d", num)->getCString();
|
|||
|
|
m_SpriteNum[k]->setString(strKey);
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// <20>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
|
|||
|
|
if (m_cbRoomID[5] != 0xff)
|
|||
|
|
{
|
|||
|
|
auto dispatcher = Director::getInstance()->getEventDispatcher();
|
|||
|
|
|
|||
|
|
int iRoomID = 0;
|
|||
|
|
|
|||
|
|
int iCarry[6] = { 100000, 10000, 1000, 100, 10, 1 }; // <20><>λ
|
|||
|
|
|
|||
|
|
for (int i = 0; i < 6; i++)
|
|||
|
|
{
|
|||
|
|
int num = 0;
|
|||
|
|
if (0xff != m_cbRoomID[i])
|
|||
|
|
{
|
|||
|
|
num = m_cbRoomID[i];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
iRoomID += num * iCarry[i];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
__Integer* pnNum = __Integer::create(iRoomID);
|
|||
|
|
|
|||
|
|
if (m_isJoinRoom)
|
|||
|
|
{
|
|||
|
|
EventCustom event(JOIN_PRIVATE_ROOM_EVENT);
|
|||
|
|
event.setUserData(pnNum);
|
|||
|
|
dispatcher->dispatchEvent(&event);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
EventCustom event(INPUT_UNION_ID);
|
|||
|
|
event.setUserData(pnNum);
|
|||
|
|
dispatcher->dispatchEvent(&event);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void JoinScene::pushScene(bool isJoinRoom /*= true*/)
|
|||
|
|
{
|
|||
|
|
if (m_ImageViewBg)
|
|||
|
|
{
|
|||
|
|
m_isJoinRoom = isJoinRoom;
|
|||
|
|
|
|||
|
|
if (m_isJoinRoom)
|
|||
|
|
{
|
|||
|
|
m_txtTitle->setString(utility::a_u8("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
m_txtTitle->setString(utility::a_u8("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>빫<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
for (int k = 5; k >= 0; k--)
|
|||
|
|
{
|
|||
|
|
m_cbRoomID[k] = 0xff;
|
|||
|
|
m_SpriteNum[k]->setString("");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
this->setVisible(true);
|
|||
|
|
m_ImageViewBg->setScale(0.8f);
|
|||
|
|
m_ImageViewBg->runAction(Sequence::create(Show::create(), ScaleTo::create(0.2f, 1.2f), ScaleTo::create(0.1f, 1.f), nullptr));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void JoinScene::popScene()
|
|||
|
|
{
|
|||
|
|
if (m_ImageViewBg)
|
|||
|
|
{
|
|||
|
|
m_ImageViewBg->runAction(Sequence::create(Hide::create(), ScaleTo::create(0.1f, 0.1f), CallFunc::create([&]()
|
|||
|
|
{
|
|||
|
|
for (int k = 5; k >= 0; k--)
|
|||
|
|
{
|
|||
|
|
m_cbRoomID[k] = 0xff;
|
|||
|
|
m_SpriteNum[k]->setString("");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
this->setVisible(false);
|
|||
|
|
}), nullptr));
|
|||
|
|
}
|
|||
|
|
}
|