diff --git a/include/Core/Engine.h b/include/Core/Engine.h index 01fcf5d..25ee041 100755 --- a/include/Core/Engine.h +++ b/include/Core/Engine.h @@ -267,6 +267,8 @@ public: rectangleShape->Dimensions = glm::vec2(20.f, 0.5f); std::shared_ptr physics = m_World->AddComponent(BottomWall); physics->CollisionType = CollisionType::Type::Static; + physics->Category = CollisionLayer::Wall; + physics->Mask = static_cast(CollisionLayer::Other); transform->Sticky = true; m_World->CommitEntity(BottomWall); } @@ -286,7 +288,7 @@ public: std::shared_ptr physics = m_World->AddComponent(topWall); physics->CollisionType = CollisionType::Type::Static; physics->Category = CollisionLayer::Wall; - physics->Mask = static_cast(CollisionLayer::Ball | CollisionLayer::Brick); + physics->Mask = static_cast(CollisionLayer::Ball | CollisionLayer::Brick | CollisionLayer::Other); transform->Sticky = true; m_World->CommitEntity(topWall); @@ -308,7 +310,7 @@ public: std::shared_ptr physics = m_World->AddComponent(leftWall); physics->CollisionType = CollisionType::Type::Static; physics->Category = CollisionLayer::Wall; - physics->Mask = static_cast(CollisionLayer::Ball | CollisionLayer::Brick); + physics->Mask = static_cast(CollisionLayer::Ball | CollisionLayer::Brick | CollisionLayer::Other); transform->Sticky = true; m_World->CommitEntity(leftWall); @@ -330,7 +332,7 @@ public: std::shared_ptr physics = m_World->AddComponent(rightWall); physics->CollisionType = CollisionType::Type::Static; physics->Category = CollisionLayer::Wall; - physics->Mask = static_cast(CollisionLayer::Ball | CollisionLayer::Brick); + physics->Mask = static_cast(CollisionLayer::Ball | CollisionLayer::Brick | CollisionLayer::Other); transform->Sticky = true; m_World->CommitEntity(rightWall); diff --git a/src/game/Game/BallSystem.cpp b/src/game/Game/BallSystem.cpp index 2f68824..b2cb030 100644 --- a/src/game/Game/BallSystem.cpp +++ b/src/game/Game/BallSystem.cpp @@ -265,8 +265,10 @@ bool dd::Systems::BallSystem::Contact(const Events::Contact &event) ec.Ball = ballEntity; EventBroker->Publish(ec); //std::cout << "Combo: " << ballComponent->Combo << std::endl; - } - else { + } + else if (m_World->GetProperty(otherEntitiy, "Name") == "Lifebuoy"){ + LOG_INFO("Lifebuoy collision!"); + } else { auto it = m_Contacts.find(ballEntity); if (it == m_Contacts.end()) { std::list normalList; diff --git a/src/game/Game/LevelSystem.cpp b/src/game/Game/LevelSystem.cpp index 9e55111..f2dea6d 100755 --- a/src/game/Game/LevelSystem.cpp +++ b/src/game/Game/LevelSystem.cpp @@ -30,7 +30,7 @@ void dd::Systems::LevelSystem::Initialize() cPhys->CollisionType = CollisionType::Type::Static; cPhys->GravityScale = 0.f; cPhys->Category = CollisionLayer::Type::Brick; - cPhys->Mask = CollisionLayer::Type::Ball; + cPhys->Mask = static_cast (CollisionLayer::Type::Ball | CollisionLayer::Type::Wall); transform->Sticky = false; model->ModelFile = "Models/Brick/WhiteBrick.obj"; @@ -420,7 +420,7 @@ void dd::Systems::LevelSystem::GetNextLevel() 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 1, 1, 0, 1, 0, 1, 1, - 1, 0, 0, 3, 0, 0, 1}; + 1, 3, 3, 3, 3, 3, 1}; } else if (m_CurrentLevel == 2) { level = {1, 0, 0, 0, 0, 0, 1,