Primera versión del sistema de escenas (probablemente sea una aproximación bastante incorrecta. Además, no se han realizado apenas pruebas).

Sistema de Logging (¡Al fin!).
This commit is contained in:
2021-12-07 23:38:07 +01:00
parent e9861e43db
commit a565bcfad2
13 changed files with 357 additions and 45 deletions
+35 -7
View File
@@ -2,13 +2,15 @@
#include <glm\glm.hpp>
#include "Render\Renderer.h"
#include "Drawables\Sprite.h"
#include "UberEngine.h"
#include "Scenes\MainScene.hpp"
#include "Scenes\TestScene2.hpp"
static UE::Renderer* mainRenderer;
static UE::AssetManager* asManager;
static UE::SceneManager* scManager;
static bool _quit = false;
@@ -17,7 +19,7 @@ void Load();
void Loop();
void Clean();
int main(int argc, char* args[])
int main(int argc, char* args[])
{
Init();
@@ -25,25 +27,44 @@ int main(int argc, char* args[])
Loop();
Clean();
return 0;
}
void Init()
{
UE::Logger::InitLogger();
mainRenderer = new UE::Renderer(640, 480, 5);
mainRenderer->InitRenderer();
UE_LOG_INFO("Renderer Created.");
asManager = new UE::AssetManager(mainRenderer->GetSDLRenderer());
asManager->InitAssetManager();
UE_LOG_INFO("AssetManager Created.");
scManager = new UE::SceneManager();
scManager->InitSceneManager();
//Añadimos todas las escenas al Manager. No pasa nada, porque el Manager lo iniciamos después
MainScene* scene1 = new MainScene();
TestScene2* scene2 = new TestScene2();
scManager->AddScene(scene1);
scManager->AddScene(scene2);
}
void Load()
{
asManager->LoadAssetsFromFile("resources\\AssetList\\MainAssets.json");
asManager->ProcessAssetQueue();
//Cargamos la escena que queramos tras tener todos los Assets pertinentes cargados.
//Si la escena contiene su propio AssetManager y los carga ella misma, no será necesario.
scManager->LoadScene(0);
//scManager->LoadScene(0);
}
@@ -87,6 +108,7 @@ void Loop()
double deltaTime = 0;
const int FPS = 60;
const int MS_PER_FRAME = 1000 / FPS;
float avgFPS;
#pragma endregion
@@ -118,6 +140,10 @@ void Loop()
{
_quit = true;
}
if (keyStates[SDL_SCANCODE_F])
{
GAME_LOG_TRACE("FPS: {0} / dT: {1}", avgFPS, deltaTime);
}
//FRAME PHYSICS
//TICK ALL OBJECTS.
@@ -132,8 +158,8 @@ void Loop()
Uint32 frameTime = SDL_GetTicks() - startTime;
deltaTime = frameTime / 1000.f;
//Frames totales / segundos totales.
float avgFPS = countedFrames / (SDL_GetTicks() / 1000.f);
std::cout << "FPS: " << avgFPS << " / " << "dT: " << deltaTime << std::endl;
avgFPS = countedFrames / (SDL_GetTicks() / 1000.f);
//std::cout << "FPS: " << avgFPS << " / " << "dT: " << deltaTime << std::endl;
//FPS CAP
if (frameTime < MS_PER_FRAME)
@@ -155,5 +181,7 @@ void Clean()
mainRenderer->CleanRenderer();
delete mainRenderer;
scManager->CleanSceneManager();
SDL_Quit();
}
+27
View File
@@ -0,0 +1,27 @@
#include "Scene\Scene.h"
#include <iostream>
class MainScene : public UE::Scene
{
void SceneLoad() override
{
std::cout << "Hey! MainScene! - ID: " << id << std::endl;
}
void SceneUpdate() override
{
std::cout << "MainScene actualizandose! - ID: " << id << std::endl;
}
void SceneUnload() override
{
std::cout << "MainScene descnsando! - ID: " << id << std::endl;
}
private:
};
+24
View File
@@ -0,0 +1,24 @@
#include "Scene\Scene.h"
#include <iostream>
class TestScene2 : public UE::Scene
{
void SceneLoad() override
{
std::cout << "Scena de prueba 2 cargada" << id << std::endl;
}
void SceneUpdate() override
{
std::cout << "TestScene2 actualizandose!" << id << std::endl;
}
void SceneUnload() override
{
std::cout << "Scene2 descansando." << id << std::endl;
}
};