first commit
This commit is contained in:
77
src/game/Main.cpp
Normal file
77
src/game/Main.cpp
Normal file
@ -0,0 +1,77 @@
|
||||
/*
|
||||
* main.cpp
|
||||
*
|
||||
* Created on: Feb 9, 2020
|
||||
* Author: ayoungblood
|
||||
*/
|
||||
|
||||
#include "Game.hpp"
|
||||
#include "../cjson/cJSON.h"
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <sstream>
|
||||
|
||||
Game *game = nullptr;
|
||||
|
||||
int main(int argc, const char * argv[])
|
||||
{
|
||||
const int FPS = 60;
|
||||
const int frameDelay = 1000 / FPS;
|
||||
|
||||
Uint32 frameStart;
|
||||
int frameTime;
|
||||
|
||||
// =============================
|
||||
// Load cJSON config.json file
|
||||
// =============================
|
||||
std::ifstream jsonText("src/config/config.json");
|
||||
std::ostringstream tmp;
|
||||
tmp << jsonText.rdbuf();
|
||||
std::string json = tmp.str();
|
||||
cJSON * myJSON = cJSON_Parse(json.c_str());
|
||||
cJSON * windowName = cJSON_GetObjectItemCaseSensitive(myJSON, "WindowName");
|
||||
// if (cJSON_IsString(windowName) && (windowName->valuestring != NULL))
|
||||
// {
|
||||
// printf("Window Name is: %s\n", windowName->valuestring);
|
||||
// }
|
||||
cJSON * windowSize = cJSON_GetObjectItem(myJSON, "WindowSize");
|
||||
int windowWidth = cJSON_GetObjectItem(windowSize, "w")->valueint;
|
||||
int windowHeight = cJSON_GetObjectItem(windowSize, "h")->valueint;
|
||||
// printf("Window:\nwidth:%d\nheight:%d\n",windowWidth,windowHeight);
|
||||
int windowFS = cJSON_GetObjectItem(myJSON, "WindowFullScreen")->valueint;
|
||||
int globalScale = cJSON_GetObjectItem(myJSON, "GlobalScale")->valueint;
|
||||
bool isWindowFS;
|
||||
if (windowFS==0)
|
||||
{
|
||||
isWindowFS = false;
|
||||
} else
|
||||
{
|
||||
isWindowFS = true;
|
||||
}
|
||||
windowWidth = windowWidth*globalScale;
|
||||
windowHeight = windowHeight*globalScale;
|
||||
game = new Game();
|
||||
game->init(windowName->valuestring, windowWidth, windowHeight, isWindowFS, globalScale);
|
||||
// cJSON memory management
|
||||
cJSON_Delete(myJSON);
|
||||
|
||||
while (game->running())
|
||||
{
|
||||
frameStart = SDL_GetTicks();
|
||||
|
||||
game->handleEvents();
|
||||
game->update();
|
||||
game->render();
|
||||
|
||||
frameTime = SDL_GetTicks() - frameStart;
|
||||
|
||||
if(frameDelay > frameTime)
|
||||
{
|
||||
SDL_Delay(frameDelay - frameTime);
|
||||
}
|
||||
|
||||
}
|
||||
game->clean();
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user