Files
SporeBG-Conid/src/scenes/menu/MainMenuScene.cpp

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);
}