#pragma once #include "ui/base/IUIManager.h" #include "game/GameTypes.h" #include class GameUIManager : public IUIManager { public: GameUIManager(SDL_Renderer* renderer, TextRenderer* textRenderer); ~GameUIManager(); void init(); void setCallback(std::function restartCallback); const UIRenderData& getUIRenderData(); // 收集渲染数据 void CollectRenderData(); void updateActionType(ActionType type); void updateGameState(GameState state); bool handleClick(int logicalX, int logicalY); private: std::function m_restartCallback; void setupUIComponents(); GameState m_currentGameState = GameState::GAME_RUNING; };