diff --git a/include/Game/CBrick.h b/include/Game/CBrick.h index d44ab02..63d19b8 100644 --- a/include/Game/CBrick.h +++ b/include/Game/CBrick.h @@ -15,10 +15,8 @@ namespace Components struct Brick : Component { - int Points = 10; int Hits = 1; int Score = 50; - bool Removed = false; }; } diff --git a/include/Game/CPad.h b/include/Game/CPad.h index 15afebd..9d9c702 100644 --- a/include/Game/CPad.h +++ b/include/Game/CPad.h @@ -17,9 +17,6 @@ namespace Components struct Pad : Component { - int Lives; - int Points; - float SlowdownModifier = 5.f; float AccelerationSpeed = 40.f; float MaxSpeed = 5.f; diff --git a/include/Game/LevelSystem.h b/include/Game/LevelSystem.h index 67131c6..dc00255 100755 --- a/include/Game/LevelSystem.h +++ b/include/Game/LevelSystem.h @@ -65,10 +65,7 @@ public: void Initialize() override; void CreateBasicLevel(int, int, glm::vec2, float); - void SaveLevel(int, int, glm::vec2, int); // Shouldn't be here, but I'm experimenting. - void LoadLevel(char[20]); void CreateBrick(int, int, glm::vec2, float, int); - void ProcessCollision(); void OnEntityRemoved(EntityID entity); diff --git a/src/game/Game/BallSystem.cpp b/src/game/Game/BallSystem.cpp index beb735e..c51a203 100644 --- a/src/game/Game/BallSystem.cpp +++ b/src/game/Game/BallSystem.cpp @@ -120,6 +120,8 @@ void dd::Systems::BallSystem::UpdateEntity(double dt, EntityID entity, EntityID // m_World->RemoveComponent(entity); // m_World->RemoveComponent(entity); // m_World->RemoveComponent(entity); + transformBall->Velocity = glm::vec3(0, 0, 0); + ballComponent->SavedSpeed = glm::vec3(0, 0, 0); m_World->RemoveEntity(entity); Events::MultiBallLost e; EventBroker->Publish(e); diff --git a/src/game/Game/LevelSystem.cpp b/src/game/Game/LevelSystem.cpp index c52fb35..03860df 100755 --- a/src/game/Game/LevelSystem.cpp +++ b/src/game/Game/LevelSystem.cpp @@ -38,25 +38,17 @@ void dd::Systems::LevelSystem::UpdateEntity(double dt, EntityID entity, EntityID if (templateCheck != nullptr){ return; } auto ball = m_World->GetComponent(entity); - SetNotResettingTheStage(NotResettingTheStage() + 0.01 * dt); if (NumberOfBricks() <= 0 && Restarting() == false) { - if (MultiBalls() <= 0 && PowerUps() <= 0) { - if (NotResettingTheStage() > 5) { - SetRestarting(true); - Events::ResetBall e; - EventBroker->Publish(e); - Events::ScoreEvent es; - es.Score = 500; - EventBroker->Publish(es); - Events::StageCleared ec; - EventBroker->Publish(ec); - SetNotResettingTheStage(0); - //CreateBasicLevel(Rows(), Lines(), SpaceBetweenBricks(), SpaceToEdge()); - } + /*if (MultiBalls() <= 0 && PowerUps() <= 0) { + //Events::StageCleared ec; + //EventBroker->Publish(ec); } else { if (ball != nullptr && MultiBalls() > 0) { + auto transformBall = m_World->GetComponent(entity); SetMultiBalls(MultiBalls()-1); + transformBall->Velocity = glm::vec3(0, 0, 0); + ball->SavedSpeed = glm::vec3(0, 0, 0); m_World->RemoveEntity(entity); } else { auto powerUp = m_World->GetComponent(entity); @@ -65,7 +57,7 @@ void dd::Systems::LevelSystem::UpdateEntity(double dt, EntityID entity, EntityID m_World->RemoveEntity(entity); } } - } + }*/ } } @@ -86,7 +78,6 @@ bool dd::Systems::LevelSystem::OnPause(const dd::Events::Pause &event) void dd::Systems::LevelSystem::CreateBasicLevel(int rows, int lines, glm::vec2 spacesBetweenBricks, float spaceToEdge) { SetNumberOfBricks(rows * lines); - //std::cout << "You're only doing this once, right?" << std::endl; int num = Lines(); for (int i = 0; i < rows; i++) { num--; @@ -115,10 +106,6 @@ void dd::Systems::LevelSystem::CreateBrick(int row, int line, glm::vec2 spacesBe cPhys->Category = CollisionLayer::Type::Brick; cPhys->Mask = CollisionLayer::Type::Ball; - /*std::string fileName = "Textures/Bricks/"; - fileName.append(std::to_string(num)); - fileName.append(".png");*/ - //sprite->SpriteFile = fileName; model->ModelFile = "Models/Test/Brick/Brick.obj"; if ((line == 1 && row == 4) || (line == 3 && row == 2) || (line == 5 && row == 2)) { std::shared_ptr cPow = m_World->AddComponent(brick); @@ -137,25 +124,9 @@ void dd::Systems::LevelSystem::CreateBrick(int row, int line, glm::vec2 spacesBe return; } -void dd::Systems::LevelSystem::ProcessCollision() -{ - // Like, go into brick component and check what it does upon collision. Maybe not done here? - return; -} - void dd::Systems::LevelSystem::OnEntityRemoved(EntityID entity) { - /*auto brick = m_World->GetComponent(entity); - if (brick != nullptr) { - SetNumberOfBricks(NumberOfBricks() - 1); - Events::ScoreEvent es; - es.Score = brick->Score; - EventBroker->Publish(es); - if (numberOfBricks < 1) { - EndLevel(); - } - } - return;*/ + } bool dd::Systems::LevelSystem::OnContact(const dd::Events::Contact &event) @@ -164,6 +135,8 @@ bool dd::Systems::LevelSystem::OnContact(const dd::Events::Contact &event) EntityID entityBall; auto ball = m_World->GetComponent(event.Entity2); auto brick = m_World->GetComponent(event.Entity1); + + //This code ensures that it is a brick and a ball that has come into contact. if (brick != nullptr) { entityBrick = event.Entity1; } else { @@ -227,9 +200,6 @@ bool dd::Systems::LevelSystem::OnContact(const dd::Events::Contact &event) SetNumberOfBricks(NumberOfBricks() - 1); - if (NumberOfBricks() <= 0) { - //SetMultiBalls(MultiBalls() + 1); - } Events::ScoreEvent es; es.Score = brick->Score * ball->Combo; EventBroker->Publish(es); @@ -245,7 +215,7 @@ bool dd::Systems::LevelSystem::OnContact(const dd::Events::Contact &event) bool dd::Systems::LevelSystem::OnScoreEvent(const dd::Events::ScoreEvent &event) { - //SetScore(Score() += event.Score); + SetScore(Score() += event.Score); return true; } @@ -298,6 +268,12 @@ bool dd::Systems::LevelSystem::OnPowerUpTaken(const dd::Events::PowerUpTaken &ev bool dd::Systems::LevelSystem::OnStageCleared(const dd::Events::StageCleared &event) { + SetRestarting(true); + Events::ResetBall e; + EventBroker->Publish(e); + Events::ScoreEvent es; + es.Score = 500; + EventBroker->Publish(es); return true; } diff --git a/src/game/Game/PadSystem.cpp b/src/game/Game/PadSystem.cpp index 1eb5744..14fc5e1 100755 --- a/src/game/Game/PadSystem.cpp +++ b/src/game/Game/PadSystem.cpp @@ -177,47 +177,7 @@ bool dd::Systems::PadSystem::OnKeyUp(const dd::Events::KeyUp &event) bool dd::Systems::PadSystem::OnContact(const dd::Events::Contact &event) { - /* - EntityID entityBall = event.Entity2; - auto ball = m_World->GetComponent(entityBall); - if (ball == NULL) { - return false; - } - EntityID entityPad = event.Entity1; - auto pad = m_World->GetComponent(entityPad); - if (pad == NULL) { - return false; - } - auto transformBall = m_World->GetComponent(entityBall); - auto transformPad = m_World->GetComponent(entityPad); - float movementMultiplier = 0.5f; - - //float movementX = (event.ContactPoint.x - transformPad->Position.x) * movementMultiplier; - //float movementY = glm::cos((abs(movementX) / (3.2f * movementMultiplier)) * 3.14159265359f / 2) * 2.f; - if (whatX > 0) { - movementX = movementMultiplier * whatX; - //std::cout << "Right!" << std::endl; - } else { - movementX = movementMultiplier * whatX; - //std::cout << "Left!" << std::endl; - } - - // std::cout << movementX << " " << movementY << std::endl; - - //float movementX = (event.ContactPoint.x - transformPad->Position.x) * movementMultiplier; - float movementY = glm::cos((abs(movementX) / ((1.6f) * movementMultiplier)) * 3.14159265359f / 2)+ 0.2; - //std::cout << movementX << " " << movementY << std::endl; - float len = glm::length(transformBall->Velocity); - //auto pointlight = m_World->AddComponent(ent); - - - transformBall->Velocity += glm::vec3(transformPad->Velocity.x, 0, 0); - transformBall->Velocity = glm::normalize(transformBall->Velocity) * len; - - - //transform->Velocity = glm::vec3(movementX, movementY, 0.f); - */ } bool dd::Systems::PadSystem::OnContactPowerUp(const dd::Events::Contact &event) @@ -252,9 +212,6 @@ bool dd::Systems::PadSystem::OnContactPowerUp(const dd::Events::Contact &event) return false; } -// m_World->RemoveComponent(entityPower); -// m_World->RemoveComponent(entityPower); -// m_World->RemoveComponent(entityPower); m_World->RemoveEntity(entityPower); Events::PowerUpTaken ep; ep.Name = "Something";