Added NetworkManager Client and GameServer class

This commit is contained in:
2025-12-27 20:16:57 +08:00
parent 4f058ae768
commit 6432e3af8d
10 changed files with 483 additions and 3 deletions

View File

@@ -0,0 +1,51 @@
#include "OnlineGameUIManager.h"
#include "ui/base/UIWidgetFactory.h"
OnlineGameUIManager::OnlineGameUIManager(SceneEventCallback eventCallback)
: GameUIManager(eventCallback) {
}
OnlineGameUIManager::~OnlineGameUIManager() {
}
void OnlineGameUIManager::init() {
GameUIManager::init();
// 在这里可以添加在线游戏特有的UI组件
auto it = m_buttons.find(makeHash("ActionButton"));
if (it != m_buttons.end()) {
auto& actionButton = it->second;
actionButton->setEnabled(false); // 在线游戏中初始禁用
}
auto onlineHostButton = UIWidgetFactory::createStandardButton(
"OnlineHostButton",
"Host Game",
200,
100,
[this]() {
// host 模式
if(m_onlineTypeEvent) {
m_onlineTypeEvent(NetType::HOST);
}
}
);
m_buttons.emplace(onlineHostButton->getNameHash(), std::move(onlineHostButton));
auto onlineJoinButton = UIWidgetFactory::createStandardButton(
"OnlineJoinButton",
"Join Game",
400,
100,
[this]() {
if(m_onlineTypeEvent) {
m_onlineTypeEvent(NetType::CLIENT);
}
}
);
m_buttons.emplace(onlineJoinButton->getNameHash(), std::move(onlineJoinButton));
}
void OnlineGameUIManager::setOnlineTypeCallback(OnlineTypeEvent onlineTypeEvent) {
m_onlineTypeEvent = onlineTypeEvent;
}