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:
+35
-7
@@ -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();
|
||||
}
|
||||
@@ -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:
|
||||
|
||||
|
||||
};
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user