Some Refactor, Redesign and comments.
Eliminamos la clase Game para mover la ejecución base al Main. More Stuff.
This commit is contained in:
+153
-5
@@ -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();
|
||||
}
|
||||
Reference in New Issue
Block a user