Loading GameEngine/GameEngine.vcxproj +1 −0 Original line number Original line Diff line number Diff line Loading @@ -72,6 +72,7 @@ </Link> </Link> </ItemDefinitionGroup> </ItemDefinitionGroup> <ItemGroup> <ItemGroup> <ClInclude Include="camera.h" /> <ClInclude Include="coreEngine.h" /> <ClInclude Include="coreEngine.h" /> <ClInclude Include="game.h" /> <ClInclude Include="game.h" /> <ClInclude Include="mesh.h" /> <ClInclude Include="mesh.h" /> Loading GameEngine/GameEngine.vcxproj.filters +3 −0 Original line number Original line Diff line number Diff line Loading @@ -74,5 +74,8 @@ <ClInclude Include="obj_loader.h"> <ClInclude Include="obj_loader.h"> <Filter>Header Files</Filter> <Filter>Header Files</Filter> </ClInclude> </ClInclude> <ClInclude Include="camera.h"> <Filter>Header Files</Filter> </ClInclude> </ItemGroup> </ItemGroup> </Project> </Project> No newline at end of file GameEngine/coreEngine.cpp +15 −15 Original line number Original line Diff line number Diff line Loading @@ -17,27 +17,27 @@ GNU General Public License for more details. #include <windows.h> #include <windows.h> #include <iostream> #include <iostream> CoreEngine::CoreEngine(std::string title, int width, int height) : title(title), width(width), height(height) CoreEngine::CoreEngine(std::string title, int width, int height) : m_title(title), m_width(width), m_height(height) { { mainWindow = new Window(title, width, height); m_mainWindow = new Window(title, width, height); Window::initGraphics(0.0f, 0.0f, 0.0f, 0.0f); Window::initGraphics(0.0f, 0.0f, 0.0f, 0.0f); game = new Game(); m_game = new Game(); isRunning = true; m_isRunning = true; } } CoreEngine::~CoreEngine() CoreEngine::~CoreEngine() { { delete mainWindow; delete m_mainWindow; delete game; delete m_game; } } void CoreEngine::start() { void CoreEngine::start() { std::cout << "Core engine started." << std::endl; std::cout << "Core engine started." << std::endl; if (!isRunning) { if (!m_isRunning) { std::cout << "Core engine closing." << std::endl; std::cout << "Core engine closing." << std::endl; return; return; } } Loading @@ -48,13 +48,13 @@ void CoreEngine::start() { void CoreEngine::render() { void CoreEngine::render() { Window::clear(); Window::clear(); game->render(); m_game->render(); mainWindow->update(); m_mainWindow->update(); } } //game loop //game loop void CoreEngine::run() { void CoreEngine::run() { isRunning = true; m_isRunning = true; std::cout << "Engine starting..."; std::cout << "Engine starting..."; int frames = 0; int frames = 0; Loading @@ -66,7 +66,7 @@ void CoreEngine::run() { long long lastTime = Time::elapsed(); long long lastTime = Time::elapsed(); double unprocessedTime = 0; double unprocessedTime = 0; while (isRunning) { while (m_isRunning) { bool render = false; bool render = false; long long startTime = Time::elapsed(); long long startTime = Time::elapsed(); long long passedTime = startTime - lastTime; long long passedTime = startTime - lastTime; Loading @@ -80,14 +80,14 @@ void CoreEngine::run() { render = true; render = true; unprocessedTime -= frameTime; unprocessedTime -= frameTime; if (mainWindow->isClosed()) if (m_mainWindow->isClosed()) stop(); stop(); Time::setDelta(frameTime); Time::setDelta(frameTime); //update the game here //update the game here game->input(); //process the inputs m_game->input(); //process the inputs game->update(); //update game values m_game->update(); //update game values //display the frame count every second //display the frame count every second if (frameCounter >= SECOND) { if (frameCounter >= SECOND) { Loading @@ -108,5 +108,5 @@ void CoreEngine::run() { } } void CoreEngine::stop() { void CoreEngine::stop() { isRunning = false; m_isRunning = false; } } No newline at end of file GameEngine/coreEngine.h +5 −10 Original line number Original line Diff line number Diff line Loading @@ -18,11 +18,6 @@ GNU General Public License for more details. #include "time.h" #include "time.h" #include "game.h" #include "game.h" #define WIDTH 1280 #define HEIGHT 700 #define TITLE "Game Engine" #define FRAME_CAP 5000.0f class CoreEngine class CoreEngine { { public: public: Loading @@ -34,11 +29,11 @@ public: ~CoreEngine(); ~CoreEngine(); private: private: Window* mainWindow; Window* m_mainWindow; int width, height; int m_width, m_height; const std::string title; const std::string m_title; bool isRunning; bool m_isRunning; Game* game; Game* m_game; void run(); void run(); void render(); void render(); Loading GameEngine/game.cpp +17 −14 Original line number Original line Diff line number Diff line Loading @@ -30,32 +30,35 @@ Game::Game() 2, 1, 0, 2, 1, 0, 0, 2, 3}; 0, 2, 3}; shader = new Shader("./res/basicShader"); m_shader = new Shader("./res/basicShader"); //mesh = new Mesh(data, sizeof(data)/sizeof(data[0]), indices, sizeof(indices)/sizeof(indices[0])); //mesh = new Mesh(data, sizeof(data)/sizeof(data[0]), indices, sizeof(indices)/sizeof(indices[0])); mesh = new Mesh("./res/monkeyNoUV.obj"); m_mesh = new Mesh("./res/monkeyNoUV.obj"); transform = new Transform(); m_transform = new Transform(); m_camera = new Camera(glm::vec3(0.0f, 0.0f, -2.0f), 70.0f, (float)WIDTH/HEIGHT, 1.0f, 100.0f); transform->SetScale(glm::vec3(0.5f, 0.5f, 0.5f)); m_transform->setScale(glm::vec3(0.5f, 0.5f, 0.5f)); shader->addUniform("transform"); m_shader->addUniform("transform"); counter = 0; m_counter = 0; } } Game::~Game() Game::~Game() { { delete mesh; delete m_mesh; delete shader; delete m_shader; delete m_transform; delete m_camera; } } void Game::input() { void Game::input() { } } void Game::render() { void Game::render() { shader->bind(); m_shader->bind(); mesh->draw(); m_mesh->draw(); if (Input::getKeyDown(SDLK_UP)) { if (Input::getKeyDown(SDLK_UP)) { std::cout << "You have pressed up!" << std::endl; std::cout << "You have pressed up!" << std::endl; } } Loading @@ -72,14 +75,14 @@ void Game::render() { } } void Game::update() { void Game::update() { counter += Time::getDelta(); m_counter += Time::getDelta(); //std::cout << counter << std::endl; //std::cout << counter << std::endl; float sinCounter = counter; float sinCounter = m_counter; float absSinCounter = abs(sinCounter); float absSinCounter = abs(sinCounter); //transform->GetPos().x = sinCounter; //transform->GetPos().x = sinCounter; transform->GetRot().y = sinCounter; m_transform->getRot().y = sinCounter; //transform->GetRot().z = sinCounter; //transform->GetRot().z = sinCounter; shader->setUniformMat4("transform", transform->GetModel()); m_shader->setUniformMat4("transform", m_camera->getViewProjection() * m_transform->getModel()); } } No newline at end of file Loading
GameEngine/GameEngine.vcxproj +1 −0 Original line number Original line Diff line number Diff line Loading @@ -72,6 +72,7 @@ </Link> </Link> </ItemDefinitionGroup> </ItemDefinitionGroup> <ItemGroup> <ItemGroup> <ClInclude Include="camera.h" /> <ClInclude Include="coreEngine.h" /> <ClInclude Include="coreEngine.h" /> <ClInclude Include="game.h" /> <ClInclude Include="game.h" /> <ClInclude Include="mesh.h" /> <ClInclude Include="mesh.h" /> Loading
GameEngine/GameEngine.vcxproj.filters +3 −0 Original line number Original line Diff line number Diff line Loading @@ -74,5 +74,8 @@ <ClInclude Include="obj_loader.h"> <ClInclude Include="obj_loader.h"> <Filter>Header Files</Filter> <Filter>Header Files</Filter> </ClInclude> </ClInclude> <ClInclude Include="camera.h"> <Filter>Header Files</Filter> </ClInclude> </ItemGroup> </ItemGroup> </Project> </Project> No newline at end of file
GameEngine/coreEngine.cpp +15 −15 Original line number Original line Diff line number Diff line Loading @@ -17,27 +17,27 @@ GNU General Public License for more details. #include <windows.h> #include <windows.h> #include <iostream> #include <iostream> CoreEngine::CoreEngine(std::string title, int width, int height) : title(title), width(width), height(height) CoreEngine::CoreEngine(std::string title, int width, int height) : m_title(title), m_width(width), m_height(height) { { mainWindow = new Window(title, width, height); m_mainWindow = new Window(title, width, height); Window::initGraphics(0.0f, 0.0f, 0.0f, 0.0f); Window::initGraphics(0.0f, 0.0f, 0.0f, 0.0f); game = new Game(); m_game = new Game(); isRunning = true; m_isRunning = true; } } CoreEngine::~CoreEngine() CoreEngine::~CoreEngine() { { delete mainWindow; delete m_mainWindow; delete game; delete m_game; } } void CoreEngine::start() { void CoreEngine::start() { std::cout << "Core engine started." << std::endl; std::cout << "Core engine started." << std::endl; if (!isRunning) { if (!m_isRunning) { std::cout << "Core engine closing." << std::endl; std::cout << "Core engine closing." << std::endl; return; return; } } Loading @@ -48,13 +48,13 @@ void CoreEngine::start() { void CoreEngine::render() { void CoreEngine::render() { Window::clear(); Window::clear(); game->render(); m_game->render(); mainWindow->update(); m_mainWindow->update(); } } //game loop //game loop void CoreEngine::run() { void CoreEngine::run() { isRunning = true; m_isRunning = true; std::cout << "Engine starting..."; std::cout << "Engine starting..."; int frames = 0; int frames = 0; Loading @@ -66,7 +66,7 @@ void CoreEngine::run() { long long lastTime = Time::elapsed(); long long lastTime = Time::elapsed(); double unprocessedTime = 0; double unprocessedTime = 0; while (isRunning) { while (m_isRunning) { bool render = false; bool render = false; long long startTime = Time::elapsed(); long long startTime = Time::elapsed(); long long passedTime = startTime - lastTime; long long passedTime = startTime - lastTime; Loading @@ -80,14 +80,14 @@ void CoreEngine::run() { render = true; render = true; unprocessedTime -= frameTime; unprocessedTime -= frameTime; if (mainWindow->isClosed()) if (m_mainWindow->isClosed()) stop(); stop(); Time::setDelta(frameTime); Time::setDelta(frameTime); //update the game here //update the game here game->input(); //process the inputs m_game->input(); //process the inputs game->update(); //update game values m_game->update(); //update game values //display the frame count every second //display the frame count every second if (frameCounter >= SECOND) { if (frameCounter >= SECOND) { Loading @@ -108,5 +108,5 @@ void CoreEngine::run() { } } void CoreEngine::stop() { void CoreEngine::stop() { isRunning = false; m_isRunning = false; } } No newline at end of file
GameEngine/coreEngine.h +5 −10 Original line number Original line Diff line number Diff line Loading @@ -18,11 +18,6 @@ GNU General Public License for more details. #include "time.h" #include "time.h" #include "game.h" #include "game.h" #define WIDTH 1280 #define HEIGHT 700 #define TITLE "Game Engine" #define FRAME_CAP 5000.0f class CoreEngine class CoreEngine { { public: public: Loading @@ -34,11 +29,11 @@ public: ~CoreEngine(); ~CoreEngine(); private: private: Window* mainWindow; Window* m_mainWindow; int width, height; int m_width, m_height; const std::string title; const std::string m_title; bool isRunning; bool m_isRunning; Game* game; Game* m_game; void run(); void run(); void render(); void render(); Loading
GameEngine/game.cpp +17 −14 Original line number Original line Diff line number Diff line Loading @@ -30,32 +30,35 @@ Game::Game() 2, 1, 0, 2, 1, 0, 0, 2, 3}; 0, 2, 3}; shader = new Shader("./res/basicShader"); m_shader = new Shader("./res/basicShader"); //mesh = new Mesh(data, sizeof(data)/sizeof(data[0]), indices, sizeof(indices)/sizeof(indices[0])); //mesh = new Mesh(data, sizeof(data)/sizeof(data[0]), indices, sizeof(indices)/sizeof(indices[0])); mesh = new Mesh("./res/monkeyNoUV.obj"); m_mesh = new Mesh("./res/monkeyNoUV.obj"); transform = new Transform(); m_transform = new Transform(); m_camera = new Camera(glm::vec3(0.0f, 0.0f, -2.0f), 70.0f, (float)WIDTH/HEIGHT, 1.0f, 100.0f); transform->SetScale(glm::vec3(0.5f, 0.5f, 0.5f)); m_transform->setScale(glm::vec3(0.5f, 0.5f, 0.5f)); shader->addUniform("transform"); m_shader->addUniform("transform"); counter = 0; m_counter = 0; } } Game::~Game() Game::~Game() { { delete mesh; delete m_mesh; delete shader; delete m_shader; delete m_transform; delete m_camera; } } void Game::input() { void Game::input() { } } void Game::render() { void Game::render() { shader->bind(); m_shader->bind(); mesh->draw(); m_mesh->draw(); if (Input::getKeyDown(SDLK_UP)) { if (Input::getKeyDown(SDLK_UP)) { std::cout << "You have pressed up!" << std::endl; std::cout << "You have pressed up!" << std::endl; } } Loading @@ -72,14 +75,14 @@ void Game::render() { } } void Game::update() { void Game::update() { counter += Time::getDelta(); m_counter += Time::getDelta(); //std::cout << counter << std::endl; //std::cout << counter << std::endl; float sinCounter = counter; float sinCounter = m_counter; float absSinCounter = abs(sinCounter); float absSinCounter = abs(sinCounter); //transform->GetPos().x = sinCounter; //transform->GetPos().x = sinCounter; transform->GetRot().y = sinCounter; m_transform->getRot().y = sinCounter; //transform->GetRot().z = sinCounter; //transform->GetRot().z = sinCounter; shader->setUniformMat4("transform", transform->GetModel()); m_shader->setUniformMat4("transform", m_camera->getViewProjection() * m_transform->getModel()); } } No newline at end of file