From a047e46fe955dd05816c3c420179aa9cf4268267 Mon Sep 17 00:00:00 2001 From: PlatinumSkink Date: Thu, 10 Sep 2015 21:30:39 +0200 Subject: [PATCH] =?UTF-8?q?Kod=20f=C3=B6r=20boll=20mot=20bricka=20kollisio?= =?UTF-8?q?n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/Game/LevelSystem.h | 7 +++++- src/game/Game/LevelSystem.cpp | 47 +++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) diff --git a/include/Game/LevelSystem.h b/include/Game/LevelSystem.h index b25f8f3..09c37c9 100644 --- a/include/Game/LevelSystem.h +++ b/include/Game/LevelSystem.h @@ -8,8 +8,9 @@ #include "Core/System.h" #include "Core/CTransform.h" #include "Rendering/CSprite.h" -#include "Core/EventBroker.h" #include "Game/CBrick.h" +//#include "Core/EContact.h" +#include "Core/EventBroker.h" #include "Core/World.h" #include "Game/EStageCleared.h" #include @@ -53,6 +54,10 @@ public: void EndLevel(); private: + //dd::EventRelay m_EContact; + + bool OnContact(/*const dd::Events::Contact &event*/); + int numberOfBricks; int tRows = 7; int tLines = 8; diff --git a/src/game/Game/LevelSystem.cpp b/src/game/Game/LevelSystem.cpp index 1c58d50..5e33379 100644 --- a/src/game/Game/LevelSystem.cpp +++ b/src/game/Game/LevelSystem.cpp @@ -39,6 +39,7 @@ void dd::Systems::LevelSystem::CreateBrick(int row, int line, glm::vec2 spacesBe auto brick = m_World->CreateEntity(); std::shared_ptr transform = m_World->AddComponent(brick); std::shared_ptr sprite = m_World->AddComponent(brick); + std::shared_ptr cBrick = m_World->AddComponent(brick); std::string fileName = "Textures/Bricks/"; fileName.append(std::to_string(num)); fileName.append(".png"); @@ -71,6 +72,52 @@ void dd::Systems::LevelSystem::OnEntityRemoved(EntityID entity) return; } +bool dd::Systems::LevelSystem::OnContact(/*const dd::Events::Contact &event,*/) +{ + /*event.Entity1 - Vi vet inte vilken som. + event.Entity2 - */ + std::string event = "I'm just a placeholder :("; + EntityID entityBrick; + EntityID entityBall; + EntityID entity1; + EntityID entity2; + EntityID ball; + + auto brick = m_World->GetComponent(entity1); + if (brick != NULL) + { + entityBrick = entity1; + ball = m_World->GetComponent(entity2); + if (ball != NULL) + { + entityBall = entity2; + } + } + else + { + brick = m_World->GetComponent(entity2); + if (brick != NULL) + { + entityBrick = entity2; + } + + ball = m_World->GetComponent(entity1); + if (ball != NULL) + { + entityBall = entity1; + } + } + + if (entityBrick != NULL && entityBall != NULL) + { + m_World->RemoveEntity(entityBrick); + + return true; + } + + return false; +} + void dd::Systems::LevelSystem::EndLevel() { Events::StageCleared e;