Fixed problems I ran into while playtesting.

This commit is contained in:
PlatinumSkink
2015-10-23 17:42:46 +02:00
parent e4aae9779e
commit 22349fe0a6
4 changed files with 65 additions and 31 deletions
+1 -1
View File
@@ -105,7 +105,7 @@ private:
std::mt19937 m_RandomGenerator; std::mt19937 m_RandomGenerator;
float m_XMovementMultiplier = 2.f; float m_XMovementMultiplier = 2.f;
float m_EdgeX = 3.4f; //Actually 3.2, but anyways. float m_EdgeX = 3.2f;
float m_EdgeY = 5.2f; float m_EdgeY = 5.2f;
int m_MultiBalls = 0; int m_MultiBalls = 0;
bool m_ReplaceBall = false; bool m_ReplaceBall = false;
+6 -6
View File
@@ -471,17 +471,17 @@ bool dd::Systems::BallSystem::OnMultiBall(const dd::Events::MultiBall &event)
ball2->Waiting = false; ball2->Waiting = false;
auto padTransform = event.padTransform; auto padTransform = event.padTransform;
float x1 = padTransform->Position.x/* - 2*/, x2 = padTransform->Position.x/* + 2*/; float x1 = padTransform->Position.x/* - 2*/, x2 = padTransform->Position.x/* + 2*/;
if (x1 < -m_EdgeX) { if (x1 < -m_EdgeX + 0.4) {
x1 = m_EdgeX - 0.2; x1 = m_EdgeX - 0.7;
} }
if (x2 > m_EdgeX) { if (x2 > m_EdgeX - 0.4) {
x2 = -m_EdgeX + 0.2; x2 = -m_EdgeX + 0.7;
} }
transform1->Position = glm::vec3(x1, -5.5, -10); transform1->Position = glm::vec3(x1, -5.5, -10);
transform2->Position = glm::vec3(x2, -5.5, -10); transform2->Position = glm::vec3(x2, -5.5, -10);
transform1->Velocity = glm::normalize(glm::vec3(5, 5 ,0.f)) * ball1->Speed; transform1->Velocity = glm::normalize(glm::vec3(2.5, 5 ,0.f)) * ball1->Speed;
transform2->Velocity = glm::normalize(glm::vec3(-5, 5 ,0.f)) * ball2->Speed; transform2->Velocity = glm::normalize(glm::vec3(-2.5, 5 ,0.f)) * ball2->Speed;
SetMultiBalls(MultiBalls() + 2); SetMultiBalls(MultiBalls() + 2);
//std::cout << MultiBalls() << std::endl; //std::cout << MultiBalls() << std::endl;
+1 -1
View File
@@ -1273,7 +1273,7 @@ void dd::Systems::LevelSystem::GetNextLevel()
level = level =
{0, 0, 0, 0, 0, 0, 0, {0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1}; 0, 0, 0, 0, 0, 0, 1};
+57 -23
View File
@@ -44,7 +44,7 @@ void dd::Systems::LifebuoySystem::Initialize()
void dd::Systems::LifebuoySystem::Update(double dt) void dd::Systems::LifebuoySystem::Update(double dt)
{ {
for (auto it = m_Lifebuoys.begin(); it != m_Lifebuoys.end();) { /*for (auto it = m_Lifebuoys.begin(); it != m_Lifebuoys.end();) { //Niklas note: Jag fortstatte få fel efter ni gick hem, och jag förstod inte det här så jag gjorde om som jag visste hur i UpdateEntity.
auto transformComponent = m_World->GetComponent<Components::Transform>(it->Entity); auto transformComponent = m_World->GetComponent<Components::Transform>(it->Entity);
auto lifebuoyComponent = m_World->GetComponent<Components::Lifebuoy>(it->Entity); auto lifebuoyComponent = m_World->GetComponent<Components::Lifebuoy>(it->Entity);
@@ -80,7 +80,7 @@ void dd::Systems::LifebuoySystem::Update(double dt)
++it; ++it;
} }
} }*/
if (IsPaused()) { if (IsPaused()) {
return; return;
@@ -103,6 +103,38 @@ void dd::Systems::LifebuoySystem::UpdateEntity(double dt, EntityID entity, Entit
} }
auto templateCheck = m_World->GetComponent<Components::Template>(entity); auto templateCheck = m_World->GetComponent<Components::Template>(entity);
if (templateCheck != nullptr){ return; } if (templateCheck != nullptr){ return; }
auto lifebuoyComponent = m_World->GetComponent<Components::Lifebuoy>(entity);
if (lifebuoyComponent != nullptr) {
auto transformComponent = m_World->GetComponent<Components::Transform>(entity);
if (transformComponent->Position.y < m_DownEdge) {
m_World->RemoveEntity(entity);
//m_Lifebuoys.erase(it++);
}
else {
if (transformComponent->Position.x > m_RightEdge) {
transformComponent->Position = glm::vec3(m_LeftEdge + 0.1f, transformComponent->Position.y, transformComponent->Position.z);
}
else if (transformComponent->Position.x < m_LeftEdge) {
transformComponent->Position = glm::vec3(m_RightEdge - 0.1f, transformComponent->Position.y, transformComponent->Position.z);
}
if (lifebuoyComponent->Hits <= 0) {
auto physicsComponent = m_World->GetComponent<Components::Physics>(entity);
physicsComponent->Mask = CollisionLayer::Type::LifeBuoy;
physicsComponent->GravityScale = 10.f;
auto modelComponent = m_World->GetComponent<Components::Model>(entity);
modelComponent->Color = glm::vec4(0.5f, 0.5f, 0.5f, 0.f);
}
if (transformComponent->Position.y < m_DownLimit && lifebuoyComponent->Hits > 0) {
transformComponent->Position.y = m_DownLimit;
}
}
}
} }
bool dd::Systems::LifebuoySystem::OnPause(const dd::Events::Pause &event) bool dd::Systems::LifebuoySystem::OnPause(const dd::Events::Pause &event)
@@ -160,28 +192,30 @@ bool dd::Systems::LifebuoySystem::OnLifebuoyHit(const dd::Events::LifebuoyHit &e
{ {
auto transformComponent = m_World->GetComponent<Components::Transform>(event.Lifebuoy); auto transformComponent = m_World->GetComponent<Components::Transform>(event.Lifebuoy);
auto lifebuoyComponent = m_World->GetComponent<Components::Lifebuoy>(event.Lifebuoy); auto lifebuoyComponent = m_World->GetComponent<Components::Lifebuoy>(event.Lifebuoy);
lifebuoyComponent->Hits -= 1; if (lifebuoyComponent != nullptr) {
auto modelComponent = m_World->GetComponent<Components::Model>(event.Lifebuoy); lifebuoyComponent->Hits -= 1;
modelComponent->ModelFile = "Models/Lifebuoy/Lifebuoy" + std::to_string(5 - lifebuoyComponent->Hits) + ".obj"; auto modelComponent = m_World->GetComponent<Components::Model>(event.Lifebuoy);
modelComponent->ModelFile = "Models/Lifebuoy/Lifebuoy" + std::to_string(5 - lifebuoyComponent->Hits) + ".obj";
Events::CreateParticleSequence e; Events::CreateParticleSequence e;
e.EmitterLifeTime = 4; e.EmitterLifeTime = 4;
e.EmittingAngle = glm::half_pi<float>(); e.EmittingAngle = glm::half_pi<float>();
e.Spread = 0.5f; e.Spread = 0.5f;
e.NumberOfTicks = 1; e.NumberOfTicks = 1;
e.ParticleLifeTime = 2.f; e.ParticleLifeTime = 2.f;
e.ParticlesPerTick = 1; e.ParticlesPerTick = 1;
e.Position = transformComponent->Position; e.Position = transformComponent->Position;
e.ScaleValues.clear(); e.ScaleValues.clear();
e.ScaleValues.push_back(glm::vec3(0.5f)); e.ScaleValues.push_back(glm::vec3(0.5f));
e.ScaleValues.push_back(glm::vec3(2.f, 2.f, 0.2f)); e.ScaleValues.push_back(glm::vec3(2.f, 2.f, 0.2f));
e.SpriteFile = "Textures/Particles/Cloud_Particle.png"; e.SpriteFile = "Textures/Particles/Cloud_Particle.png";
e.Color = glm::vec4(1, 0, 0, 1); e.Color = glm::vec4(1, 0, 0, 1);
e.AlphaValues.clear(); e.AlphaValues.clear();
e.AlphaValues.push_back(1.f); e.AlphaValues.push_back(1.f);
e.AlphaValues.push_back(0.f); e.AlphaValues.push_back(0.f);
e.Speed = 10.f; e.Speed = 10.f;
EventBroker->Publish(e); EventBroker->Publish(e);
}
return true; return true;
} }