mirror of
https://github.com/zhenyan121/SporeBG-Conid.git
synced 2026-04-10 06:14:08 +08:00
49 lines
1.3 KiB
C++
49 lines
1.3 KiB
C++
#include "MainMenuScene.h"
|
|
|
|
MainMenuScene::MainMenuScene() {
|
|
// 构造函数实现
|
|
}
|
|
|
|
void MainMenuScene::onEnter(SDL_Renderer* renderer, int width, int height, UIRenderer* uiRenderer) {
|
|
// 进入场景时的初始化逻辑
|
|
m_renderer = renderer;
|
|
m_uiRenderer = uiRenderer;
|
|
m_mainMenuUIManager = std::make_unique<MainMenuUIManager>(
|
|
renderer,
|
|
uiRenderer->getTextRenderer(),
|
|
[this](const std::string& sceneName) {
|
|
if (m_eventCallback) {
|
|
SceneEvent event{SceneEventType::ChangeScene, sceneName};
|
|
m_eventCallback(event);
|
|
}
|
|
}
|
|
);
|
|
m_mainMenuUIManager->init();
|
|
}
|
|
|
|
void MainMenuScene::onExit() {
|
|
// 退出场景时的清理逻辑
|
|
m_mainMenuUIManager.reset();
|
|
}
|
|
|
|
void MainMenuScene::update() {
|
|
// 更新场景逻辑
|
|
}
|
|
|
|
void MainMenuScene::render() {
|
|
beginFrame();
|
|
// 渲染场景内容
|
|
const UIRenderData& uiRenderData = m_mainMenuUIManager->getUIRenderData();
|
|
m_uiRenderer->renderUI(uiRenderData);
|
|
endFrame();
|
|
}
|
|
|
|
void MainMenuScene::handleClick(float x, float y) {
|
|
// 处理点击事件
|
|
m_mainMenuUIManager->handleClick(x, y);
|
|
}
|
|
|
|
|
|
void MainMenuScene::renderMousePosition(float x, float y) {
|
|
m_mainMenuUIManager->UpdateMousePositon(x, y);
|
|
} |