#pragma once #include "scenes/base/Scene.h" #include "graphics/game/BoardRenderer.h" #include "graphics/game/CoordinateConverter.h" #include "game/GameSession.h" #include "graphics/ui/UIRenderer.h" #include "ui/managers/GameUIManager.h" #include class GameScene : public Scene { public: GameScene(); ~GameScene(); void onEnter(SDL_Renderer* renderer, int WIDTH, int HEIGHT, UIRenderer* uiRenderer) override; void update() override; void renderWorld() override; // 逻辑世界 void renderUI() override; // 屏幕 UI void handleClick(int logicalX, int logicalYY) override; void restartGame(); protected: std::unique_ptr m_boardRenderer; std::unique_ptr m_CoordinateConverter; std::unique_ptr m_gameSession; private: std::unique_ptr m_gameUIManager; };