Merge branch 'LevelSystemAndSuch'

This commit is contained in:
PlatinumSkink
2015-10-22 16:58:16 +02:00
4 changed files with 40 additions and 56 deletions
+4 -21
View File
@@ -72,29 +72,12 @@ public:
void Update(double dt) override; void Update(double dt) override;
void UpdateEntity(double dt, EntityID entity, EntityID parent) override; void UpdateEntity(double dt, EntityID entity, EntityID parent) override;
EntityID& Entity() { return m_Entity; }
void SetEntity(const EntityID& ent) { m_Entity = ent; }
glm::vec3 Acceleration() const { return m_Acceleration; }
void SetAcceleration(const glm::vec3& acceleration) { m_Acceleration = acceleration; }
bool Left() const { return m_Left; }
void SetLeft(const bool& left) { m_Left = left; }
bool Right() const { return m_Right; }
void SetRight(const bool& right) { m_Right = right; }
float Edge() const { return m_Edge; }
void SetEdge(const float& edge) { m_Edge = edge; }
Components::Transform* Transform() const { return m_Transform; }
void SetTransform(Components::Transform* transform) { m_Transform = transform; }
Components::Pad* Pad() const { return m_Pad; }
void SetPad(Components::Pad* pad) { m_Pad = pad; }
bool IsPaused() const { return m_Pause; } bool IsPaused() const { return m_Pause; }
void SetPause(const bool& pause) { m_Pause = pause; } void SetPause(const bool& pause) { m_Pause = pause; }
private: private:
EntityID m_Entity = 0; EntityID m_PadEntity = 0;
glm::vec3 m_Acceleration = glm::vec3(0.f, 0.f, 0.f); glm::vec3 m_PadAcceleration = glm::vec3(0.f, 0.f, 0.f);
bool m_Left = false; bool m_Left = false;
bool m_Right = false; bool m_Right = false;
bool m_ReplaceBall = false; bool m_ReplaceBall = false;
@@ -110,8 +93,8 @@ private:
EntityID m_KrakenArm = NULL; EntityID m_KrakenArm = NULL;
EntityID m_KrakenArmHitbox = NULL; EntityID m_KrakenArmHitbox = NULL;
float m_PadRiseSpeed = 0.2; float m_PadRiseSpeed = 0.2;
Components::Transform* m_Transform = nullptr; Components::Transform* m_PadTransform = nullptr;
Components::Pad* m_Pad = nullptr; Components::Pad* m_PadComponent = nullptr;
std::shared_ptr<Components::Transform> m_StickTransform; std::shared_ptr<Components::Transform> m_StickTransform;
std::shared_ptr<Components::StickyAim> m_StickyAim; std::shared_ptr<Components::StickyAim> m_StickyAim;
+1 -1
View File
@@ -329,7 +329,7 @@ void dd::Systems::LevelSystem::UpdateEntity(double dt, EntityID entity, EntityID
auto ball = m_World->GetComponent<Components::Ball>(entity); auto ball = m_World->GetComponent<Components::Ball>(entity);
if (NumberOfBricks() <= 0 && m_LooseBricks <= 0 && !Restarting()) { if (NumberOfBricks() <= 0 && m_LooseBricks <= 0 && !Restarting() && !m_Cleared) {
if (MultiBalls() <= 0 && PowerUps() <= 0) { if (MultiBalls() <= 0 && PowerUps() <= 0) {
Events::StageCleared ec; Events::StageCleared ec;
ec.ClearedStage = m_CurrentLevel; ec.ClearedStage = m_CurrentLevel;
+2 -1
View File
@@ -85,7 +85,8 @@ void dd::Systems::LifeSystem::CreateLife(int number)
transform->Position = glm::vec3(-1.5f + number * 0.15f, -2.f, -5.f); transform->Position = glm::vec3(-1.5f + number * 0.15f, -2.f, -5.f);
//transform->Position = glm::vec3(-1.5f + number * 1.5f, -3.f, -10.f); //transform->Position = glm::vec3(-1.5f + number * 1.5f, -3.f, -10.f);
transform->Scale = glm::vec3(0.1f, 0.1f, 0.1f); transform->Scale = glm::vec3(0.1f, 0.1f, 0.1f);
//transform->Scale = glm::vec3(0.2f, 0.2f, 0.2f); /*transform->Scale = glm::vec3(0.2f, 0.2f, 0.2f);
transform->Velocity.x = m_LifeSpeed;*/
std::shared_ptr<Components::Life> lifeNr = m_World->AddComponent<Components::Life>(life); std::shared_ptr<Components::Life> lifeNr = m_World->AddComponent<Components::Life>(life);
lifeNr->Number = number; lifeNr->Number = number;
+33 -33
View File
@@ -58,7 +58,7 @@ void dd::Systems::PadSystem::Initialize()
auto pad = m_World->AddComponent<Components::Pad>(ent); auto pad = m_World->AddComponent<Components::Pad>(ent);
m_World->CommitEntity(ent); m_World->CommitEntity(ent);
SetEdge(3.2 - (ctransform->Scale.x / 2)); m_Edge = 3.2 - (ctransform->Scale.x / 2);
} }
//Stick //Stick
@@ -110,7 +110,7 @@ void dd::Systems::PadSystem::UpdateEntity(double dt, EntityID entity, EntityID p
m_ResetBall = false; m_ResetBall = false;
} }
auto ballTransform = m_World->GetComponent<Components::Transform>(entity); auto ballTransform = m_World->GetComponent<Components::Transform>(entity);
ballTransform->Position = Transform()->Position; ballTransform->Position = m_PadTransform->Position;
ballTransform->Position += ball->StickyPlacement; ballTransform->Position += ball->StickyPlacement;
glm::vec2 dir = glm::normalize(glm::vec2(ball->SavedSpeed.x, ball->SavedSpeed.y)); glm::vec2 dir = glm::normalize(glm::vec2(ball->SavedSpeed.x, ball->SavedSpeed.y));
glm::vec2 up = glm::vec2(0.f, 1.f); glm::vec2 up = glm::vec2(0.f, 1.f);
@@ -133,12 +133,12 @@ void dd::Systems::PadSystem::Update(double dt)
return; return;
} }
if (Entity() == 0) { if (m_PadEntity == 0) {
for (auto it = m_World->GetEntities()->begin(); it != m_World->GetEntities()->end(); it++) { for (auto it = m_World->GetEntities()->begin(); it != m_World->GetEntities()->end(); it++) {
if (m_World->GetProperty<std::string>(it->first, "Name") == "Pad") { if (m_World->GetProperty<std::string>(it->first, "Name") == "Pad") {
SetEntity(it->first); m_PadEntity = it->first;
SetTransform(m_World->GetComponent<Components::Transform>(Entity())); m_PadTransform = m_World->GetComponent<Components::Transform>(m_PadEntity);
SetPad(m_World->GetComponent<Components::Pad>(Entity())); m_PadComponent = m_World->GetComponent<Components::Pad>(m_PadEntity);
break; break;
} }
} }
@@ -155,9 +155,9 @@ void dd::Systems::PadSystem::Update(double dt)
return; return;
} }
auto transform = Transform(); auto transform = m_PadTransform;
auto pad = Pad(); auto pad = m_PadComponent;
auto acceleration = Acceleration(); auto acceleration = m_PadAcceleration;
if (glm::abs(transform->Position.y - m_PadHeight) > m_PadRiseSpeed) { if (glm::abs(transform->Position.y - m_PadHeight) > m_PadRiseSpeed) {
if (transform->Position.y < m_PadHeight) { if (transform->Position.y < m_PadHeight) {
@@ -173,27 +173,27 @@ void dd::Systems::PadSystem::Update(double dt)
transform->Velocity.x = pad->MaxSpeed; transform->Velocity.x = pad->MaxSpeed;
} }
transform->Position += transform->Velocity * (float)dt; transform->Position += transform->Velocity * (float)dt;
if (transform->Position.x > Edge()) { if (transform->Position.x > m_Edge) {
transform->Position.x = Edge(); transform->Position.x = m_Edge;
} else if (transform->Position.x < -Edge()) { } else if (transform->Position.x < -m_Edge) {
transform->Position.x = -Edge(); transform->Position.x = -m_Edge;
} }
transform->Velocity += acceleration * (float)dt; transform->Velocity += acceleration * (float)dt;
if (glm::abs(transform->Velocity.x) > 1 || (!Left() && !Right())) { if (glm::abs(transform->Velocity.x) > 1 || (!m_Left && !m_Right)) {
transform->Velocity -= transform->Velocity * pad->SlowdownModifier * (float) dt; transform->Velocity -= transform->Velocity * pad->SlowdownModifier * (float) dt;
} }
if (Left()) { if (m_Left) {
acceleration.x = -pad->AccelerationSpeed; acceleration.x = -pad->AccelerationSpeed;
} else if (Right()) { } else if (m_Right) {
acceleration.x = pad->AccelerationSpeed; acceleration.x = pad->AccelerationSpeed;
} else { } else {
acceleration.x = 0.f; acceleration.x = 0.f;
} }
SetTransform(transform); m_PadTransform = transform;
SetPad(pad); m_PadComponent = pad;
SetAcceleration(acceleration); m_PadAcceleration = acceleration;
return; return;
} }
@@ -227,11 +227,11 @@ bool dd::Systems::PadSystem::OnKeyDown(const dd::Events::KeyDown &event) {
} else if (val == GLFW_KEY_LEFT) { } else if (val == GLFW_KEY_LEFT) {
//std::cout << "Left!" << std::endl; //std::cout << "Left!" << std::endl;
//acceleration.x = -0.01f; //acceleration.x = -0.01f;
SetLeft(true); m_Left = true;
} else if (val == GLFW_KEY_RIGHT) { } else if (val == GLFW_KEY_RIGHT) {
//std::cout << "Right!" << std::endl; //std::cout << "Right!" << std::endl;
//acceleration.x = 0.01f; //acceleration.x = 0.01f;
SetRight(true); m_Right = true;
} else if (val == GLFW_KEY_R) { } else if (val == GLFW_KEY_R) {
Events::ResetBall e; Events::ResetBall e;
EventBroker->Publish(e); EventBroker->Publish(e);
@@ -250,7 +250,7 @@ bool dd::Systems::PadSystem::OnKeyDown(const dd::Events::KeyDown &event) {
EventBroker->Publish(e); EventBroker->Publish(e);
} else if (val == GLFW_KEY_M) { } else if (val == GLFW_KEY_M) {
Events::MultiBall e; Events::MultiBall e;
e.padTransform = Transform(); e.padTransform = m_PadTransform;
EventBroker->Publish(e); EventBroker->Publish(e);
} else if (val == GLFW_KEY_P) { } else if (val == GLFW_KEY_P) {
if (IsPaused()) { if (IsPaused()) {
@@ -284,7 +284,7 @@ bool dd::Systems::PadSystem::OnKeyDown(const dd::Events::KeyDown &event) {
EventBroker->Publish(e); EventBroker->Publish(e);
} else if (val == GLFW_KEY_L) { } else if (val == GLFW_KEY_L) {
Events::Lifebuoy e; Events::Lifebuoy e;
e.Transform = Transform(); e.Transform = m_PadTransform;
EventBroker->Publish(e); EventBroker->Publish(e);
} else if (val == GLFW_KEY_Y) { } else if (val == GLFW_KEY_Y) {
Events::StickyPad e; Events::StickyPad e;
@@ -303,14 +303,14 @@ bool dd::Systems::PadSystem::OnKeyDown(const dd::Events::KeyDown &event) {
EventBroker->Publish(e); EventBroker->Publish(e);
} else if (val == GLFW_KEY_Q) { } else if (val == GLFW_KEY_Q) {
Events::Move e; Events::Move e;
e.Entity = Entity(); e.Entity = m_PadEntity;
e.GoalPosition = glm::vec3(0, 0, -10); e.GoalPosition = glm::vec3(0, 0, -10);
e.Speed = 5; e.Speed = 5;
e.Queue = false; e.Queue = false;
EventBroker->Publish(e); EventBroker->Publish(e);
} else if (val == GLFW_KEY_SPACE) { } else if (val == GLFW_KEY_SPACE) {
Events::ActionButton e; Events::ActionButton e;
e.Position = Transform()->Position; e.Position = m_PadTransform->Position;
EventBroker->Publish(e); EventBroker->Publish(e);
} else if (val == GLFW_KEY_D) { } else if (val == GLFW_KEY_D) {
return false; return false;
@@ -326,9 +326,9 @@ bool dd::Systems::PadSystem::OnKeyUp(const dd::Events::KeyUp &event)
} else if (val == GLFW_KEY_DOWN) { } else if (val == GLFW_KEY_DOWN) {
} else if (val == GLFW_KEY_LEFT) { } else if (val == GLFW_KEY_LEFT) {
SetLeft(false); m_Left = false;
} else if (val == GLFW_KEY_RIGHT) { } else if (val == GLFW_KEY_RIGHT) {
SetRight(false); m_Right = false;
} }
return true; return true;
} }
@@ -471,15 +471,15 @@ bool dd::Systems::PadSystem::OnKrakenAttack(const dd::Events::KrakenAttack &even
m_PlayerStrength = event.PlayerStrength; m_PlayerStrength = event.PlayerStrength;
m_KrakenCharge = event.ChargeUpdate; m_KrakenCharge = event.ChargeUpdate;
m_KrakenAttack = true; m_KrakenAttack = true;
auto transform = Transform(); auto transform = m_PadTransform;
auto acceleration = Acceleration(); auto acceleration = m_PadAcceleration;
transform->Velocity = glm::vec3(0, 0, 0); transform->Velocity = glm::vec3(0, 0, 0);
acceleration = glm::vec3(0, 0, 0); acceleration = glm::vec3(0, 0, 0);
LOG_INFO("Kraken arm duuude"); LOG_INFO("Kraken arm duuude");
if (!m_KrakenArm){ if (!m_KrakenArm){
LOG_INFO("InKrakenArmDuuude"); LOG_INFO("InKrakenArmDuuude");
m_KrakenArm = m_World->CreateEntity(Entity()); m_KrakenArm = m_World->CreateEntity(m_PadEntity);
auto transform = m_World->AddComponent<Components::Transform>(m_KrakenArm); auto transform = m_World->AddComponent<Components::Transform>(m_KrakenArm);
transform->Position = glm::vec3(1.f, -3.0f, 0.f); transform->Position = glm::vec3(1.f, -3.0f, 0.f);
auto model = m_World->AddComponent<Components::Model>(m_KrakenArm); auto model = m_World->AddComponent<Components::Model>(m_KrakenArm);
@@ -508,8 +508,8 @@ bool dd::Systems::PadSystem::OnKrakenAttack(const dd::Events::KrakenAttack &even
m_World->CommitEntity(m_KrakenArmHitbox); m_World->CommitEntity(m_KrakenArmHitbox);
} }
SetTransform(transform); m_PadTransform = transform;
SetAcceleration(acceleration); m_PadAcceleration = acceleration;
} else if (m_KrakenCharge >= 1) { } else if (m_KrakenCharge >= 1) {
m_KrakenAttack = false; m_KrakenAttack = false;
Events::KrakenAttackEnd e; Events::KrakenAttackEnd e;