diff --git a/include/Core/Engine.h b/include/Core/Engine.h index 65c7d73..19a0189 100644 --- a/include/Core/Engine.h +++ b/include/Core/Engine.h @@ -58,28 +58,22 @@ public: m_World->ComponentFactory.Register(); m_World->SystemFactory.Register([this]() { return new Systems::TransformSystem(m_World.get(), m_EventBroker); }); m_World->AddSystem(); -<<<<<<< HEAD m_World->SystemFactory.Register([this]() { return new Systems::LevelSystem(m_World.get(), m_EventBroker); }); m_World->AddSystem(); -======= ->>>>>>> origin/master m_World->ComponentFactory.Register(); m_World->ComponentFactory.Register(); m_World->Initialize(); -<<<<<<< HEAD // auto ent = m_World->CreateEntity(); // std::shared_ptr transform = m_World->AddComponent(ent); // transform->Position = glm::vec3(0.f, 0.f, -10.f); // std::shared_ptr model = m_World->AddComponent(ent); // model->ModelFile = "Models/Core/UnitSphere.obj"; -======= auto ent = m_World->CreateEntity(); std::shared_ptr transform = m_World->AddComponent(ent); transform->Position = glm::vec3(0.f, 0.f, -10.f); std::shared_ptr model = m_World->AddComponent(ent); model->ModelFile = "Models/Core/UnitSphere.obj"; ->>>>>>> origin/master m_LastTime = glfwGetTime(); @@ -99,7 +93,8 @@ public: m_InputManager->Update(dt); m_World->Update(dt); -<<<<<<< HEAD + + // // if (glfwGetKey(m_Renderer->Window(), GLFW_KEY_R)) { // ResourceManager::Reload("Shaders/Deferred/3/Fragment.glsl"); @@ -111,7 +106,6 @@ public: // Render scene //TODO send renderqueue to draw. // m_Renderer->Draw(m_RendererQueue); -======= if (glfwGetKey(m_Renderer->Window(), GLFW_KEY_R)) { ResourceManager::Reload("Shaders/Deferred/3/Fragment.glsl"); @@ -123,7 +117,6 @@ public: // Render scene //TODO send renderqueue to draw. m_Renderer->Draw(m_RendererQueue); ->>>>>>> origin/master // Swap event queues m_EventBroker->Clear(); diff --git a/include/Core/InputController.h b/include/Core/InputController.h index 288db71..4eec570 100644 --- a/include/Core/InputController.h +++ b/include/Core/InputController.h @@ -34,54 +34,23 @@ class InputController public: InputController(std::shared_ptr eventBroker) : EventBroker(eventBroker) - , InGame(true) { Initialize(); } virtual void Initialize() { - EVENT_SUBSCRIBE_MEMBER(m_EInputCommand, &InputController::_OnCommand); - EVENT_SUBSCRIBE_MEMBER(m_EMouseMove, &InputController::_OnMouseMove); - EVENT_SUBSCRIBE_MEMBER(m_EGameStart, &InputController::OnGameStart); - EVENT_SUBSCRIBE_MEMBER(m_EGameOver, &InputController::OnGameOver); + EVENT_SUBSCRIBE_MEMBER(m_EInputCommand, &InputController::OnCommand); + EVENT_SUBSCRIBE_MEMBER(m_EMouseMove, &InputController::OnMouseMove); } virtual bool OnCommand(const Events::InputCommand &event) { return false; } virtual bool OnMouseMove(const Events::MouseMove &event) { return false; } - virtual bool OnGameStart(const Events::GameStart &event) - { - InGame = true; - return true; - } - virtual bool OnGameOver(const Events::GameOver &event) - { - InGame = false; - return true; - } protected: std::shared_ptr EventBroker; - bool InGame; private: EventRelay m_EInputCommand; EventRelay m_EMouseMove; - EventRelay m_EGameStart; - EventRelay m_EGameOver; - - virtual bool _OnCommand(const Events::InputCommand &event) - { - if (InGame || event.Value == 0) - return OnCommand(event); - else - return false; - } - virtual bool _OnMouseMove(const Events::MouseMove &event) - { - if (InGame) - return OnMouseMove(event); - else - return false; - } }; } diff --git a/include/Game/CPad.h b/include/Game/CPad.h new file mode 100644 index 0000000..dac06c3 --- /dev/null +++ b/include/Game/CPad.h @@ -0,0 +1,30 @@ +// +// Created by Administrator on 2015-09-10. +// + +#ifndef DAYDREAM_CPAD_H +#define DAYDREAM_CPAD_H + +#include "Core/Component.h" +#include "Core/EKeyDown.h" +#include "Core/EventBroker.h" + +namespace dd +{ + +namespace Components +{ + +struct Pad : Component +{ + //std::shared_ptr eventBroker; + //EVENT_SUBSCRIBE_MEMBER(m_EKeyDown, CPad::OnKeyDown); + int Lives; + int Points; +}; + +} + +} + +#endif //DAYDREAM_CPAD_H diff --git a/include/Game/LevelSystem.h b/include/Game/LevelSystem.h index 1dc8c46..770a7c3 100644 --- a/include/Game/LevelSystem.h +++ b/include/Game/LevelSystem.h @@ -9,6 +9,9 @@ #include "Core/CTransform.h" //#include "Rendering/CSprite.h" #include "Core/EventBroker.h" +#include "Game/CBrick.h" +#include "Core/World.h" +#include "Game/EStageCleared.h" #include #include #include @@ -49,8 +52,6 @@ public: void EndLevel(); - - private: int numberOfBricks; int tRows = 8; diff --git a/include/Game/PadSystem.h b/include/Game/PadSystem.h new file mode 100644 index 0000000..986ffda --- /dev/null +++ b/include/Game/PadSystem.h @@ -0,0 +1,54 @@ +// +// Created by Adniklastrator on 2015-09-10. +// + +#ifndef DAYDREAM_PADSYSTEM_H +#define DAYDREAM_PADSYSTEM_H + +#include "Core/InputController.h" +#include "Core/System.h" +#include "Core/EventBroker.h" +#include "Core/EKeyDown.h" +#include "Input/EBindKey.h" + +namespace dd +{ + +namespace Systems +{ + +class PadSystem : public System +{ +public: + PadSystem(World* world, std::shared_ptr eventBroker) + : System(world, eventBroker) + { } + + void Initialize() override ; +private: + dd::EventRelay m_EKeyDown; + + class PadSteeringInputController; + std::array, 4> m_PadInputControllers; + + bool OnKeyDown(const dd::Events::KeyDown &event); +}; + +class PadSystem::PadSteeringInputController : InputController +{ +public: + PadSteeringInputController(std::shared_ptr eventBroker) + : InputController(eventBroker) + { + + } +protected: + virtual bool OnCommand(const Events::InputCommand &event); +}; + +} + +} + + +#endif //DAYDREAM_PADSYSTEM_H diff --git a/src/game/CMakeLists.txt b/src/game/CMakeLists.txt index aa0e86a..f76976d 100755 --- a/src/game/CMakeLists.txt +++ b/src/game/CMakeLists.txt @@ -67,7 +67,7 @@ set(SOURCE_FILES ${SOURCE_FILES_Rendering} ${SOURCE_FILES_Transform} ${SOURCE_FILES_Game} - ../../include/Game/CBrick.h ../../include/Game/EStageCleared.h) + ../../include/Game/CBrick.h ../../include/Game/EStageCleared.h ../../include/Game/CPad.h Game/PadSystem.cpp ../../include/Game/PadSystem.h) if(CMAKE_COMPILER_IS_GNUCXX) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread") diff --git a/src/game/Game/LevelSystem.cpp b/src/game/Game/LevelSystem.cpp index df0fde6..57e5ebd 100644 --- a/src/game/Game/LevelSystem.cpp +++ b/src/game/Game/LevelSystem.cpp @@ -4,14 +4,15 @@ #include "PrecompiledHeader.h" -#include "Game/CBrick.h" #include "Game/LevelSystem.h" -#include "Core/World.h" -#include "Game/EStageCleared.h" + void dd::Systems::LevelSystem::Initialize() { CreateBasicLevel(tRows, tLines, tSpaceBetweenBricks, tSpaceToEdge); + + + return; } @@ -66,4 +67,5 @@ void dd::Systems::LevelSystem::EndLevel() Events::StageCleared e; EventBroker->Publish(e); return; -} \ No newline at end of file +} + diff --git a/src/game/Game/PadSystem.cpp b/src/game/Game/PadSystem.cpp new file mode 100644 index 0000000..648dbef --- /dev/null +++ b/src/game/Game/PadSystem.cpp @@ -0,0 +1,63 @@ +// +// Created by Adniklastrator on 2015-09-10. +// + +#include "PrecompiledHeader.h" +#include "Game/PadSystem.h" +#include "Core/World.h" + + +void dd::Systems::PadSystem::Initialize() +{ + Events::BindKey r; + r.KeyCode = GLFW_KEY_RIGHT; + r.Command = "right"; + EventBroker->Publish(r); + + Events::BindKey l; + l.KeyCode = GLFW_KEY_LEFT; + l.Command = "right"; + EventBroker->Publish(l); + + EVENT_SUBSCRIBE_MEMBER(m_EKeyDown, PadSystem::OnKeyDown); + + return; +} + +bool dd::Systems::PadSystem::OnKeyDown(const dd::Events::KeyDown &event) +{ + + return true; +} + +/*bool dd::Systems::PadSteeringInputController::OnCommand(const Events::InputCommand &event) +{ + std::string command = event.Command; + + if (command == "right") + { + + } + else if (command == "left") + { + + } + + return true; +}*/ + +bool dd::Systems::PadSystem::PadSteeringInputController::OnCommand(const Events::InputCommand &event) +{ + std::string command = event.Command; + + if (command == "right") + { + + } + else if (command == "left") + { + + } + + return true; +} \ No newline at end of file