Adjusted Power-Up Code
This commit is contained in:
@@ -82,6 +82,8 @@ public:
|
|||||||
void SetPastLives(const int& pastLives) { m_PastLives = pastLives; }
|
void SetPastLives(const int& pastLives) { m_PastLives = pastLives; }
|
||||||
int& MultiBalls() { return m_MultiBalls; }
|
int& MultiBalls() { return m_MultiBalls; }
|
||||||
void SetMultiBalls(const int& multiBalls) { m_MultiBalls = multiBalls; }
|
void SetMultiBalls(const int& multiBalls) { m_MultiBalls = multiBalls; }
|
||||||
|
int& PowerUps() { return m_PowerUps; }
|
||||||
|
void SetPowerUps(const int& powerUps) { m_PowerUps = powerUps; }
|
||||||
int& Score() { return m_Score; }
|
int& Score() { return m_Score; }
|
||||||
void SetScore(const int& score) { m_Score = score; }
|
void SetScore(const int& score) { m_Score = score; }
|
||||||
int& NumberOfBricks() { return m_NumberOfBricks; }
|
int& NumberOfBricks() { return m_NumberOfBricks; }
|
||||||
@@ -101,6 +103,7 @@ private:
|
|||||||
int m_Lives = 3;
|
int m_Lives = 3;
|
||||||
int m_PastLives = 3;
|
int m_PastLives = 3;
|
||||||
int m_MultiBalls = 0;
|
int m_MultiBalls = 0;
|
||||||
|
int m_PowerUps = 0;
|
||||||
int m_Score = 0;
|
int m_Score = 0;
|
||||||
int m_NumberOfBricks;
|
int m_NumberOfBricks;
|
||||||
int m_Rows = 7;
|
int m_Rows = 7;
|
||||||
|
|||||||
@@ -50,9 +50,9 @@ void dd::Systems::LevelSystem::Update(double dt)
|
|||||||
|
|
||||||
if (Lives() < 0)
|
if (Lives() < 0)
|
||||||
{
|
{
|
||||||
|
SetLives(3);
|
||||||
Events::GameOver e;
|
Events::GameOver e;
|
||||||
EventBroker->Publish(e);
|
EventBroker->Publish(e);
|
||||||
std::cout << "Game Over!" << std::endl;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,7 +62,7 @@ void dd::Systems::LevelSystem::UpdateEntity(double dt, EntityID entity, EntityID
|
|||||||
|
|
||||||
if (ball != NULL) {
|
if (ball != NULL) {
|
||||||
auto transformBall = m_World->GetComponent<Components::Transform>(entity);
|
auto transformBall = m_World->GetComponent<Components::Transform>(entity);
|
||||||
if (transformBall->Position.y < -10) {
|
if (transformBall->Position.y < -10 || glm::abs(transformBall->Position.x) > 10) {
|
||||||
if (MultiBalls() != 0) {
|
if (MultiBalls() != 0) {
|
||||||
SetMultiBalls(MultiBalls() - 1);
|
SetMultiBalls(MultiBalls() - 1);
|
||||||
m_World->RemoveEntity(entity);
|
m_World->RemoveEntity(entity);
|
||||||
@@ -87,7 +87,7 @@ void dd::Systems::LevelSystem::UpdateEntity(double dt, EntityID entity, EntityID
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (NumberOfBricks() <= 0) {
|
if (NumberOfBricks() <= 0) {
|
||||||
if (MultiBalls() <= 0) {
|
if (MultiBalls() <= 0 && PowerUps() <= 0) {
|
||||||
Events::ScoreEvent es;
|
Events::ScoreEvent es;
|
||||||
es.Score = 500;
|
es.Score = 500;
|
||||||
EventBroker->Publish(es);
|
EventBroker->Publish(es);
|
||||||
@@ -95,9 +95,15 @@ void dd::Systems::LevelSystem::UpdateEntity(double dt, EntityID entity, EntityID
|
|||||||
EventBroker->Publish(e);
|
EventBroker->Publish(e);
|
||||||
CreateBasicLevel(Rows(), Lines(), SpaceBetweenBricks(), SpaceToEdge());
|
CreateBasicLevel(Rows(), Lines(), SpaceBetweenBricks(), SpaceToEdge());
|
||||||
} else {
|
} else {
|
||||||
if (ball != NULL) {
|
if (ball != NULL && MultiBalls() > 0) {
|
||||||
SetMultiBalls(MultiBalls() - 1);
|
SetMultiBalls(MultiBalls() - 1);
|
||||||
m_World->RemoveEntity(entity);
|
m_World->RemoveEntity(entity);
|
||||||
|
} else {
|
||||||
|
auto powerUp = m_World->GetComponent<Components::PowerUp>(entity);
|
||||||
|
if (powerUp != NULL) {
|
||||||
|
SetPowerUps(PowerUps() - 1);
|
||||||
|
m_World->RemoveEntity(entity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -133,7 +139,7 @@ void dd::Systems::LevelSystem::CreateBrick(int row, int line, glm::vec2 spacesBe
|
|||||||
fileName.append(".png");
|
fileName.append(".png");
|
||||||
//sprite->SpriteFile = fileName;
|
//sprite->SpriteFile = fileName;
|
||||||
model->ModelFile = "Models/Test/Brick/Brick.obj";
|
model->ModelFile = "Models/Test/Brick/Brick.obj";
|
||||||
if (line == 1) {
|
if ((line == 1 && row == 4) || (line == 3 && row == 2) || (line == 6 && row == 6)) {
|
||||||
std::shared_ptr<Components::PowerUpBrick> cPow = m_World->AddComponent<Components::PowerUpBrick>(brick);
|
std::shared_ptr<Components::PowerUpBrick> cPow = m_World->AddComponent<Components::PowerUpBrick>(brick);
|
||||||
}
|
}
|
||||||
float x = spaceToEdge + line * spacesBetweenBricks.x;
|
float x = spaceToEdge + line * spacesBetweenBricks.x;
|
||||||
@@ -208,8 +214,7 @@ bool dd::Systems::LevelSystem::OnContact(const dd::Events::Contact &event)
|
|||||||
EventBroker->Publish(e);
|
EventBroker->Publish(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ball)
|
if (ball != NULL) {
|
||||||
{
|
|
||||||
m_World->RemoveEntity(entityBrick);
|
m_World->RemoveEntity(entityBrick);
|
||||||
|
|
||||||
SetNumberOfBricks(NumberOfBricks() - 1);
|
SetNumberOfBricks(NumberOfBricks() - 1);
|
||||||
@@ -244,6 +249,7 @@ bool dd::Systems::LevelSystem::OnMultiBall(const dd::Events::MultiBall &event)
|
|||||||
|
|
||||||
bool dd::Systems::LevelSystem::OnCreatePowerUp(const dd::Events::CreatePowerUp &event)
|
bool dd::Systems::LevelSystem::OnCreatePowerUp(const dd::Events::CreatePowerUp &event)
|
||||||
{
|
{
|
||||||
|
SetPowerUps(PowerUps() + 1);
|
||||||
auto powerUp = m_World->CreateEntity();
|
auto powerUp = m_World->CreateEntity();
|
||||||
std::shared_ptr<Components::Transform> transform = m_World->AddComponent<Components::Transform>(powerUp);
|
std::shared_ptr<Components::Transform> transform = m_World->AddComponent<Components::Transform>(powerUp);
|
||||||
auto model = m_World->AddComponent<Components::Model>(powerUp);
|
auto model = m_World->AddComponent<Components::Model>(powerUp);
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ void dd::Systems::PadSystem::UpdateEntity(double dt, EntityID entity, EntityID p
|
|||||||
SetReplaceBall(false);
|
SetReplaceBall(false);
|
||||||
|
|
||||||
auto transformEntity = m_World->GetComponent<Components::Transform>(entity);
|
auto transformEntity = m_World->GetComponent<Components::Transform>(entity);
|
||||||
transformEntity->Position = glm::vec3(20, 20, -10);
|
transformEntity->Position = glm::vec3(0, 20, -10);
|
||||||
|
|
||||||
m_World->RemoveEntity(entity);
|
m_World->RemoveEntity(entity);
|
||||||
|
|
||||||
@@ -263,8 +263,15 @@ bool dd::Systems::PadSystem::OnMultiBall(const dd::Events::MultiBall &event)
|
|||||||
auto transform1 = m_World->GetComponent<Components::Transform>(ent1);
|
auto transform1 = m_World->GetComponent<Components::Transform>(ent1);
|
||||||
auto transform2 = m_World->GetComponent<Components::Transform>(ent2);
|
auto transform2 = m_World->GetComponent<Components::Transform>(ent2);
|
||||||
auto padTransform = event.padTransform;
|
auto padTransform = event.padTransform;
|
||||||
transform1->Position = glm::vec3(padTransform->Position.x - 4, -5, -10);
|
float x1 = padTransform->Position.x - 6, x2 = padTransform->Position.x + 6;
|
||||||
transform2->Position = glm::vec3(padTransform->Position.x + 4, -5, -10);
|
if (x1 < -7) {
|
||||||
|
x1 = 7;
|
||||||
|
}
|
||||||
|
if (x2 > 7) {
|
||||||
|
x2 = -7;
|
||||||
|
}
|
||||||
|
transform1->Position = glm::vec3(x1, -5, -10);
|
||||||
|
transform2->Position = glm::vec3(x2, -5, -10);
|
||||||
|
|
||||||
Events::SetImpulse e1;
|
Events::SetImpulse e1;
|
||||||
e1.Entity = ent1;
|
e1.Entity = ent1;
|
||||||
|
|||||||
Reference in New Issue
Block a user