Files
wnmj-normal/Classes/Scenes/PlayerScene.cpp
2026-03-03 13:56:44 +08:00

130 lines
3.2 KiB
C++

#include "PlayerScene.h"
#include "MissionWeiXin.h"
#include "SimpleAudioEngine.h"
#include "UserInfo.h"
#include "ImagicDownManager.h"
PlayerScene::PlayerScene()
{
}
PlayerScene::~PlayerScene()
{
}
bool PlayerScene::init()
{
if (!Node::init())
{
return false;
};
rootPanel = CSLoader::createNode("Platform/PlayerScene.csb");
CC_ASSERT(rootPanel != nullptr);
this->addChild(rootPanel);
m_ImageView = (ImageView*)rootPanel->getChildByName("Imagebg");
CC_ASSERT(m_ImageView != nullptr);
////获取关闭按钮
//auto btnClose = (Button*)m_ImageView->getChildByName("btnExit");
//CC_ASSERT(btnClose != nullptr);
////注册关闭按钮事件
//btnClose->addClickEventListener([this](Ref*){
// YSAudioEngine::Instance().playBtnClickEffect();
// //this->removeFromParent();
// this->popScene();
//});
auto panelbg = (Layout*)rootPanel->getChildByName("Panel_bg");
CC_ASSERT(panelbg != nullptr);
panelbg->addClickEventListener([this](Ref*){
YSAudioEngine::Instance().playBtnClickEffect();
this->popScene();
});
return true;
}
void PlayerScene::showPlayerInfo(GamePlayer* player /*= nullptr*/)
{
if (player != nullptr)
{
// 头像
auto sprUserFace = (Sprite*)m_ImageView->getChildByName("Face");
CC_ASSERT(sprUserFace != nullptr);
std::string strHttp = player->GetHeadHttp();
uint32 dwUserID = player->GetUserID();
ImagicDownManager::Instance().addDown(sprUserFace, strHttp, dwUserID);
// 名字
auto txtUserName = (Text*)m_ImageView->getChildByName("txtUserName");
CC_ASSERT(txtUserName != nullptr);
txtUserName->setString(player->GetNickName());
// 性别
auto sex = (Sprite*)m_ImageView->getChildByName("sex");
CC_ASSERT(sex != nullptr);
std::string strSex = StringUtils::format("Platform/player/%d.png", player->GetUserInfo()->cbGender);
sex->setTexture(strSex);
// 经验
auto txtExp = (Text*)m_ImageView->getChildByName("txtExp");
CC_ASSERT(txtExp != nullptr);
std::string strExp = utility::GetUserLevel(player->GetUserGrade());
txtExp->setString(utility::a_u8(strExp));
// IP
auto txtUserIP = (Text*)m_ImageView->getChildByName("txtUserIp");
CC_ASSERT(txtUserIP != nullptr);
std::string strLogonIp = StringUtils::format("IP:%s", player->GetLogonIp().c_str());
txtUserIP->setString(strLogonIp);
// 地址
tagUserAddr UserAddr = player->GetLocation();
auto txtAddr = (Text*)m_ImageView->getChildByName("txtAddr");
CC_ASSERT(txtAddr != nullptr);
std::string strAddr = utility::a_u8("未知位置");
if (UserAddr.isInit)
{
strAddr = utility::a_u8("地址:") + UserAddr.strAddress;
}
txtAddr->setString(strAddr);
// 距离
auto txtDistance = (Text*)m_ImageView->getChildByName("txtDistance");
CC_ASSERT(txtDistance != nullptr);
std::string strDistance = "距离:0.0km";
//计算距离
tagUserAddr* pSelfAddr = CGlobalUserInfo::GetInstance()->GetUserAddr();
if (pSelfAddr->isInit && UserAddr.isInit)
{
double dDistance = CGlobalUserInfo::GetInstance()->GetDistance(UserAddr.latitude, UserAddr.longitude);
strDistance = StringUtils::format("距离:%0.3fkm", dDistance);
}
txtDistance->setString(utility::a_u8(strDistance));
}
}
void PlayerScene::onEnter()
{
Node::onEnter();
}
void PlayerScene::onEnterTransitionDidFinish()
{
Node::onEnterTransitionDidFinish();
}
void PlayerScene::onExit()
{
Node::onExit();
}