Some Refactor, Redesign and comments.

Eliminamos la clase Game para mover la ejecución base al Main.
More Stuff.
This commit is contained in:
2021-12-05 19:19:03 +01:00
parent 5d92a945ab
commit e9861e43db
16 changed files with 478 additions and 242 deletions
+153 -5
View File
@@ -1,11 +1,159 @@
#include <iostream>
#include <glm\glm.hpp>
#include "Render\Renderer.h"
#include "Drawables\Sprite.h"
#include "UberEngine.h"
static UE::Renderer* mainRenderer;
static UE::AssetManager* asManager;
static bool _quit = false;
void Init();
void Load();
void Loop();
void Clean();
int main(int argc, char* args[])
{
static UE::Game& game = UE::Game::getInstance();
game.GameInit();
game.GameLoop();
game.GameClean();
//exit = game.GameLoop();
Init();
Load();
Loop();
Clean();
return 0;
}
void Init()
{
mainRenderer = new UE::Renderer(640, 480, 5);
mainRenderer->InitRenderer();
asManager = new UE::AssetManager(mainRenderer->GetSDLRenderer());
asManager->InitAssetManager();
}
void Load()
{
asManager->LoadAssetsFromFile("resources\\AssetList\\MainAssets.json");
asManager->ProcessAssetQueue();
}
void Loop()
{
#pragma region TEMP_REDERING
//SDL_Surface* loaderSurface;
SDL_Texture* background;
SDL_Texture* test1;
SDL_Rect DestR;
DestR.x = 0;
DestR.y = 0;
DestR.w = 640;
DestR.h = 480;
SDL_Rect DestR2;
DestR2.x = 48;
DestR2.y = 48;
DestR2.w = 128;
DestR2.h = 128;
background = asManager->getTexture("bg1");
test1 = asManager->getTexture("test1");
glm::vec2 sp1_pos(48, 48);
glm::vec2 sp1_size(145, 145);
//Sprite sp1("test1", assetManager, 5, sp1_pos, sp1_size);
//Sprite sp2("test1", assetManager, 7, sp1_pos);
UE::Sprite sp3(test1);
#pragma endregion
#pragma region TEMP_FPS_Timer
Uint32 startTime = SDL_GetTicks();
Uint16 countedFrames = 0;
double deltaTime = 0;
const int FPS = 60;
const int MS_PER_FRAME = 1000 / FPS;
#pragma endregion
while (!_quit)
{
startTime = SDL_GetTicks();
//TEMP Event Handler:
SDL_Event eventHandler;
while (SDL_PollEvent(&eventHandler) != 0)
{
if (eventHandler.type == SDL_QUIT)
{
_quit = true;
}
}
const Uint8* keyStates = SDL_GetKeyboardState(NULL);
if (keyStates[SDL_SCANCODE_W])
{
DestR2.y -= (25 * deltaTime);
}
if (keyStates[SDL_SCANCODE_S])
{
DestR2.y -= (50 * deltaTime);
//std::cout << "S PRESS" << std::endl;
}
if (keyStates[SDL_SCANCODE_ESCAPE])
{
_quit = true;
}
//FRAME PHYSICS
//TICK ALL OBJECTS.
mainRenderer->QueueDrawCall(4, DestR2, test1);
mainRenderer->QueueDrawCall(1, DestR, background);
//renderer->Render(sp1);
//sp2.Draw(renderer);
sp3.Draw(mainRenderer);
mainRenderer->RenderFrame();
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;
//FPS CAP
if (frameTime < MS_PER_FRAME)
{
SDL_Delay(MS_PER_FRAME - frameTime);
}
++countedFrames;
}
}
void Clean()
{
asManager->CleanAssetManager();
delete asManager;
mainRenderer->CleanRenderer();
delete mainRenderer;
SDL_Quit();
}