83 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
		
		
			
		
	
	
			83 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
|  | #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> actor = new Actor; | ||
|  |     AddChild(actor); | ||
|  | 
 | ||
|  |     RefPtr<Sprite> BackGroundSp = new Sprite("sprite/interface2/nowloading/nowloading.img", 1); | ||
|  |     actor->AddComponent(BackGroundSp); | ||
|  |     RefPtr<Sprite> BackGround2Sp = new Sprite("sprite/interface2/nowloading/nowloading.img", 0); | ||
|  |     BackGround2Sp->SetPos(SDL_Point{0, 686}); | ||
|  |     actor->AddComponent(BackGround2Sp); | ||
|  |     RefPtr<Sprite> 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> 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_Test> scene = new Scene_Test; | ||
|  |         Game::GetInstance().ChangeScene(scene); | ||
|  |         // 设定UI层场景
 | ||
|  |         RefPtr<Scene_SelectCharacter_UI> 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; | ||
|  |     } | ||
|  | } |