From 00febb309a18a8cdd1a5fa1304f4e722f6d93ad8 Mon Sep 17 00:00:00 2001 From: zhenyan121 <3367366583@qq.com> Date: Thu, 25 Dec 2025 16:12:14 +0800 Subject: [PATCH] Removed rendering of mouse position in the scene --- src/core/GameApplication.cpp | 2 +- src/scenes/base/Scene.h | 7 +------ src/scenes/base/SceneManager.cpp | 5 +---- src/scenes/gameplay/GameScene.cpp | 3 --- src/scenes/gameplay/GameScene.h | 2 +- src/scenes/menu/MainMenuScene.cpp | 3 --- src/scenes/menu/MainMenuScene.h | 2 +- src/ui/base/IUIManager.h | 2 +- src/ui/managers/GameUIManager.cpp | 18 +----------------- src/ui/managers/GameUIManager.h | 2 +- src/ui/managers/MainMenuUIManager.cpp | 10 +--------- src/ui/managers/MainMenuUIManager.h | 2 +- 12 files changed, 10 insertions(+), 48 deletions(-) diff --git a/src/core/GameApplication.cpp b/src/core/GameApplication.cpp index 15c76a3..7b6b2ad 100644 --- a/src/core/GameApplication.cpp +++ b/src/core/GameApplication.cpp @@ -67,7 +67,7 @@ SDL_AppResult GameApplication::handleInputEvent(SDL_Event* event) { auto pos = Tools::physicalToLogical(input.mouseCurrentPosition.first, input.mouseCurrentPosition.second, m_windowManager->getViewport()); m_debugManager->updateMousePos(pos.first, pos.second, input); - m_sceneManager->handleMousePosition(pos); + m_windowManager->setFullscreen(input.isFullscreen); // 改变窗口时清理旧的缓存 diff --git a/src/scenes/base/Scene.h b/src/scenes/base/Scene.h index 0855ef3..253b429 100644 --- a/src/scenes/base/Scene.h +++ b/src/scenes/base/Scene.h @@ -52,12 +52,7 @@ public: * @param y 点击位置的 Y 坐标 */ virtual void handleClick(int logicalX, int logicalY) = 0; - /** - * @brief 渲染鼠标位置相关内容 - * @param x 鼠标位置的 X 坐标 - * @param y 鼠标位置的 Y 坐标 - */ - virtual void renderMousePosition(int logicalX, int logicalY){}; + /** * @brief 设置场景事件回调函数 * @param callback 场景事件回调函数 diff --git a/src/scenes/base/SceneManager.cpp b/src/scenes/base/SceneManager.cpp index daddd91..9cf5567 100644 --- a/src/scenes/base/SceneManager.cpp +++ b/src/scenes/base/SceneManager.cpp @@ -152,10 +152,7 @@ void SceneManager::handleClickCurrent(std::pair clickOn) { if (m_scene) m_scene->handleClick(logicalX, logicalY); } -void SceneManager::handleMousePosition(std::pair mousePosition) { - auto [logicalX, logicalY] = mousePosition; - if (m_scene) m_scene->renderMousePosition(logicalX, logicalY); -} + void SceneManager::updateCurrent() { if (m_scene) m_scene->update(); diff --git a/src/scenes/gameplay/GameScene.cpp b/src/scenes/gameplay/GameScene.cpp index 7e91664..5dddf53 100644 --- a/src/scenes/gameplay/GameScene.cpp +++ b/src/scenes/gameplay/GameScene.cpp @@ -75,9 +75,6 @@ void GameScene::handleClick(int logicalX, int logicalY) { } } -void GameScene::renderMousePosition(int logicalX, int logicalY) { - m_gameUIManager->updateMousePositon(logicalX, logicalY); -} void GameScene::restartGame() { m_gameSession = std::make_unique(); diff --git a/src/scenes/gameplay/GameScene.h b/src/scenes/gameplay/GameScene.h index 2e71b46..b53d512 100644 --- a/src/scenes/gameplay/GameScene.h +++ b/src/scenes/gameplay/GameScene.h @@ -18,7 +18,7 @@ public: void renderUI() override; // 屏幕 UI void handleClick(int logicalX, int logicalYY) override; - void renderMousePosition(int logicalX, int logicalY) override; + void restartGame(); private: diff --git a/src/scenes/menu/MainMenuScene.cpp b/src/scenes/menu/MainMenuScene.cpp index d1a7363..aabec41 100644 --- a/src/scenes/menu/MainMenuScene.cpp +++ b/src/scenes/menu/MainMenuScene.cpp @@ -50,6 +50,3 @@ void MainMenuScene::handleClick(int logicalX, int logicalY) { } -void MainMenuScene::renderMousePosition(int logicalX, int logicalY) { - m_mainMenuUIManager->updateMousePositon(logicalX, logicalY); -} \ No newline at end of file diff --git a/src/scenes/menu/MainMenuScene.h b/src/scenes/menu/MainMenuScene.h index de407a9..5ca6483 100644 --- a/src/scenes/menu/MainMenuScene.h +++ b/src/scenes/menu/MainMenuScene.h @@ -15,7 +15,7 @@ public: void renderUI() override; // 屏幕 UI void handleClick(int logicalX, int logicalY) override; - void renderMousePosition(int logicalX, int logicalY) override; + private: // 其他私有成员变量和方法 std::unique_ptr m_mainMenuUIManager = nullptr; diff --git a/src/ui/base/IUIManager.h b/src/ui/base/IUIManager.h index 106c887..58a2f46 100644 --- a/src/ui/base/IUIManager.h +++ b/src/ui/base/IUIManager.h @@ -20,7 +20,7 @@ public: // 收集渲染数据 virtual void CollectRenderData() = 0; - virtual void updateMousePositon(int logicalX, int logicalY) = 0; + protected: std::unordered_map> m_buttons; diff --git a/src/ui/managers/GameUIManager.cpp b/src/ui/managers/GameUIManager.cpp index e851191..8243eba 100644 --- a/src/ui/managers/GameUIManager.cpp +++ b/src/ui/managers/GameUIManager.cpp @@ -50,14 +50,6 @@ void GameUIManager::CollectRenderData() { } } -void GameUIManager::updateMousePositon(int logicalX, int logicalY) { - - - - std::string pos = std::to_string(logicalX) + " " + std::to_string(logicalY); - - m_labels[makeHash("MousePositionLabel")]->setText(pos); -} void GameUIManager::updateActionType(ActionType type) { // 根据传入的 ActionType 更新 UI 组件状态 @@ -136,15 +128,7 @@ void GameUIManager::setupUIComponents() { ); m_buttons.emplace(button->getNameHash(), std::move(button)); - auto label = UIWidgetFactory::createStandardLabel( - "MousePositionLabel", - "0 0", - 240, - 0 - ); - - m_labels.emplace(label->getNameHash(), std::move(label)); - + auto restartButton = UIWidgetFactory::createStandardButton( "RestartButton", "Restart", diff --git a/src/ui/managers/GameUIManager.h b/src/ui/managers/GameUIManager.h index 3dee1aa..100c946 100644 --- a/src/ui/managers/GameUIManager.h +++ b/src/ui/managers/GameUIManager.h @@ -16,7 +16,7 @@ public: // 收集渲染数据 void CollectRenderData(); - void updateMousePositon(int logicalX, int logicalY); + void updateActionType(ActionType type); diff --git a/src/ui/managers/MainMenuUIManager.cpp b/src/ui/managers/MainMenuUIManager.cpp index 215ea88..b675594 100644 --- a/src/ui/managers/MainMenuUIManager.cpp +++ b/src/ui/managers/MainMenuUIManager.cpp @@ -20,8 +20,7 @@ void MainMenuUIManager::init() { ); m_buttons.emplace(startButton->getNameHash(), std::move(startButton)); - auto label = UIWidgetFactory::createStandardLabel("MousePositionLabel", "0 0", 240, 0); - m_labels.emplace(label->getNameHash(), std::move(label)); + } void MainMenuUIManager::CollectRenderData() { @@ -47,13 +46,6 @@ void MainMenuUIManager::CollectRenderData() { } } -void MainMenuUIManager::updateMousePositon(int logicalX, int logicalY) { - - - std::string pos = std::to_string(logicalX) + " " + std::to_string(logicalY); - - m_labels[makeHash("MousePositionLabel")]->setText(pos); -} const UIRenderData& MainMenuUIManager::getUIRenderData() { CollectRenderData(); diff --git a/src/ui/managers/MainMenuUIManager.h b/src/ui/managers/MainMenuUIManager.h index d76b37b..d4e446b 100644 --- a/src/ui/managers/MainMenuUIManager.h +++ b/src/ui/managers/MainMenuUIManager.h @@ -19,7 +19,7 @@ public: void CollectRenderData() override; - void updateMousePositon(int logicalX, int logicalY) override; + void handleClick(int logicalX, int logicalY);