推
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
#include "EngineFrame/Component/Sprite.h"
|
||||
#include "EngineFrame/Base/Actor.h"
|
||||
#include "EngineFrame/Component/Text.h"
|
||||
#include "Asset/Asset_SoundPack.h"
|
||||
|
||||
Game::Game()
|
||||
{
|
||||
@@ -67,13 +68,6 @@ void Game::Init(std::function<void()> CallBack)
|
||||
|
||||
IMG_Init(IMG_INIT_PNG);
|
||||
|
||||
// 初始化SDL_mixer,支持OGG格式
|
||||
// 44100: 采样率, MIX_DEFAULT_FORMAT: 音频格式, 2: 声道数(立体声), 4096: 缓冲区大小
|
||||
if (Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 4096) < 0)
|
||||
{
|
||||
SDL_LogError(SDL_LOG_CATEGORY_ERROR, "SDL_mixer初始化失败! Mix_Error: %s\n", Mix_GetError());
|
||||
m_isRunning = false;
|
||||
}
|
||||
|
||||
// 初始化 TTF
|
||||
if (TTF_Init() == -1)
|
||||
@@ -157,9 +151,16 @@ void Game::HandleEvents(SDL_Event *e)
|
||||
|
||||
void Game::Update(float deltaTime)
|
||||
{
|
||||
//调用松鼠的更新
|
||||
// 内存回收机制
|
||||
m_lastMemoryPrintTime += deltaTime;
|
||||
if (m_lastMemoryPrintTime >= m_memoryPrintInterval)
|
||||
{
|
||||
m_lastMemoryPrintTime = 0;
|
||||
MemoryReclaims();
|
||||
}
|
||||
// 调用松鼠的更新
|
||||
SquirrelEx::GetInstance().Update(deltaTime);
|
||||
if (m_scene != nullptr)
|
||||
if (m_scene != nullptr)
|
||||
m_scene->Update(deltaTime);
|
||||
if (m_uiScene != nullptr)
|
||||
m_uiScene->Update(deltaTime);
|
||||
@@ -205,6 +206,12 @@ void Game::Clear()
|
||||
SDL_Quit();
|
||||
}
|
||||
|
||||
void Game::MemoryReclaims()
|
||||
{
|
||||
// 音频内存回收
|
||||
Asset_SoundPack::GetInstance().Reclaims();
|
||||
}
|
||||
|
||||
void Game::ChangeScene(RefPtr<Scene> scene)
|
||||
{
|
||||
if (m_scene != nullptr)
|
||||
@@ -225,6 +232,11 @@ void Game::ChangeUIScene(RefPtr<Scene> scene)
|
||||
m_uiScene->Enter();
|
||||
}
|
||||
|
||||
RefPtr<Scene> Game::GetScene()
|
||||
{
|
||||
return m_scene;
|
||||
}
|
||||
|
||||
RenderManager *Game::GetRenderer()
|
||||
{
|
||||
return m_renderer;
|
||||
|
||||
Reference in New Issue
Block a user