From bce2ccf889ab840565ef1e1fda05476ad7e3fbb3 Mon Sep 17 00:00:00 2001 From: Jasper Date: Fri, 11 Jun 2021 11:43:46 +0200 Subject: [PATCH] [ADD] added base for loading scene --- src/scenes/loading_Scene.cpp | 47 +++++++++++++ src/scenes/loading_Scene.h | 63 ++++++++++++++++++ src/scenes/scene.h | 1 + src/scenes/startup_Scene.cpp | 1 + wk2_fps.vcxproj | 2 + wk2_fps.vcxproj.filters | 124 ++++++++++------------------------- 6 files changed, 148 insertions(+), 90 deletions(-) create mode 100644 src/scenes/loading_Scene.cpp create mode 100644 src/scenes/loading_Scene.h diff --git a/src/scenes/loading_Scene.cpp b/src/scenes/loading_Scene.cpp new file mode 100644 index 0000000..3c9e245 --- /dev/null +++ b/src/scenes/loading_Scene.cpp @@ -0,0 +1,47 @@ +#include "loading_Scene.h" +#include "../renderEngine/Renderer.h" +#include "../renderEngine/Loader.h" +#include "../gui/gui_element.h" + +namespace scene +{ + + Loading_Scene::Loading_Scene() + { + gui_shader = new shaders::GuiShader(); + gui_shader->Init(); + } + + Loading_Scene::~Loading_Scene() + { + delete gui_shader; + } + + Scenes Loading_Scene::start(GLFWwindow* window) + { + render(); + + } + + void Loading_Scene::render() + { + render_engine::renderer::Prepare(); + + gui::GuiTexture loading_image = { render_engine::loader::LoadTexture("res/menu_item_start1.png"), + glm::vec2(0,0),glm::vec2(1,1) }; + + std::vector image_list; + image_list.push_back(&loading_image); + + render_engine::renderer::Render(image_list, *gui_shader); + } + + void Loading_Scene::update(GLFWwindow* window) + { + } + + + void Loading_Scene::onKey(GLFWwindow* window, int key, int scancode, int action, int mods) + { + } +} diff --git a/src/scenes/loading_Scene.h b/src/scenes/loading_Scene.h new file mode 100644 index 0000000..abe3ea0 --- /dev/null +++ b/src/scenes/loading_Scene.h @@ -0,0 +1,63 @@ +#pragma once +#pragma once +#include "scene.h" +#include "../gui/gui_element.h" +#include "../shaders/gui_shader.h" + +namespace scene +{ + extern GLFWwindow* window; + + + class Loading_Scene : public scene::Scene + { + private: + //return_value is an enum that is necessary for the scene switching. Whenever this changes, the scene will change to a different scene. + scene::Scenes return_value = scene::Scenes::LOADING; + shaders::GuiShader* gui_shader; + + + public: + /** + * @brief Constructor of the class Startup_Scene + * + */ + Loading_Scene(); + + ~Loading_Scene(); + + /** + * @brief + * + * @param window + * @return + */ + Scenes start(GLFWwindow* window) override; + + /** + * @brief + * + */ + void render() override; + + /** + * @brief This method updates all the components on the window + * + * @param window Window it updates + */ + void update(GLFWwindow* window) override; + + /** + * @brief Listener for key events + * + * @param window Window it listens to for key events + * @param key Key of event that is activated + * @param scancode Code of Key + * @param action + * @param mods + */ + void onKey(GLFWwindow* window, int key, int scancode, int action, int mods) override; + }; +} + + diff --git a/src/scenes/scene.h b/src/scenes/scene.h index 4db2fe5..396a6f5 100644 --- a/src/scenes/scene.h +++ b/src/scenes/scene.h @@ -11,6 +11,7 @@ namespace scene { */ enum class Scenes { + LOADING, STARTUP, INGAME, GAMEOVER, diff --git a/src/scenes/startup_Scene.cpp b/src/scenes/startup_Scene.cpp index b734214..d83d2fb 100644 --- a/src/scenes/startup_Scene.cpp +++ b/src/scenes/startup_Scene.cpp @@ -211,6 +211,7 @@ namespace scene { if (glfwGetKey(window, GLFW_KEY_SPACE) == GLFW_PRESS) { + return_value = scene::Scenes::INGAME; cv::destroyWindow("camera"); } diff --git a/wk2_fps.vcxproj b/wk2_fps.vcxproj index f9065d6..9f078f2 100644 --- a/wk2_fps.vcxproj +++ b/wk2_fps.vcxproj @@ -40,6 +40,7 @@ + @@ -56,6 +57,7 @@ + diff --git a/wk2_fps.vcxproj.filters b/wk2_fps.vcxproj.filters index fad9c5f..bf45e7b 100644 --- a/wk2_fps.vcxproj.filters +++ b/wk2_fps.vcxproj.filters @@ -24,6 +24,11 @@ + + + + + @@ -83,98 +88,8 @@ Source Files - - Source Files - - - Source Files - - - Source Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - @@ -206,6 +121,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +