#include "Scene/Scene_Loading_UI.h" #include "Scene/Scene_SelectCharacter_UI.hpp" #include "Scene/Scene_Test.h" #include "Scene_Loading_UI.h" #include "EngineFrame/Component/Sprite.h" #include "EngineFrame/Component/Text.h" #include "Global/Global_Game.h" #include "EngineCore/Asset_Script.h" Scene_Loading_UI::Scene_Loading_UI(/* args */) { } Scene_Loading_UI::~Scene_Loading_UI() { } void Scene_Loading_UI::Enter() { // 加载OGG文件 music = Mix_LoadMUS("Music/characterSelectStage.ogg"); if (music) { Mix_PlayMusic(music, 1); } RefPtr actor = new Actor; AddChild(actor); RefPtr BackGroundSp = new Sprite("sprite/interface2/nowloading/nowloading.img", 1); actor->AddComponent(BackGroundSp); RefPtr BackGround2Sp = new Sprite("sprite/interface2/nowloading/nowloading.img", 0); BackGround2Sp->SetPos(SDL_Point{0, 686}); actor->AddComponent(BackGround2Sp); RefPtr LoadCircleSp = new Sprite("sprite/interface2/nowloading/nowloading.img", 4); LoadCircleSp->SetName("LoadCircle"); LoadCircleSp->SetPos(SDL_Point{1280 - 60, 686 - 60}); LoadCircleSp->SetBlendMode(SDL_BLENDMODE_ADD); LoadCircleSp->SetAnchor(SDL_FPoint{0.5, 0.5}); actor->AddComponent(LoadCircleSp); actor->SetCallbackOnUpdate([LoadCircleSp](float deltaTime) mutable { float angle = LoadCircleSp->GetAngle(); LoadCircleSp->SetAngle(angle + 180.0f * deltaTime); }); // 文字测试 // RefPtr text = new Text("测试文字加载中...", Global_Game::GetInstance().Fonts[0], SDL_Color{255, 255, 255, 255}, SDL_Color{0, 0, 0, 255}, 4); // actor->AddComponent(text); } void Scene_Loading_UI::HandleEvents(SDL_Event *e) { } void Scene_Loading_UI::Update(float deltaTime) { Scene::Update(deltaTime); if (Asset_Script::GetInstance().InitFlag) { // 设定游戏层场景 RefPtr scene = new Scene_Test; Game::GetInstance().ChangeScene(scene); // 设定UI层场景 RefPtr sceneUI = new Scene_SelectCharacter_UI; Game::GetInstance().ChangeUIScene(sceneUI); } } void Scene_Loading_UI::Render(float deltaTime) { Scene::Render(deltaTime); } void Scene_Loading_UI::Exit() { if (music) { Mix_FreeMusic(music); music = nullptr; } }