powerup bugfix

This commit is contained in:
ViktorLjung
2014-03-13 23:01:55 +01:00
parent c53913f63b
commit 7013546314
3 changed files with 25 additions and 41 deletions
@@ -17,7 +17,6 @@ void Systems::LevelGenerationSystem::SpawnObstacle()
EntityID ent; EntityID ent;
ent = m_World->CreateEntity(); ent = m_World->CreateEntity();
obstacles.push_back(ent);
auto transform = m_World->AddComponent<Components::Transform>(ent, "Transform"); auto transform = m_World->AddComponent<Components::Transform>(ent, "Transform");
auto bounds = m_World->AddComponent<Components::Bounds>(ent, "Bounds"); auto bounds = m_World->AddComponent<Components::Bounds>(ent, "Bounds");
@@ -28,7 +27,7 @@ void Systems::LevelGenerationSystem::SpawnObstacle()
positionRandom = -500 + startx + (rand() % 1000); positionRandom = -500 + startx + (rand() % 1000);
transform->Position = glm::vec3(positionRandom, startyz); transform->Position = glm::vec3(positionRandom, startyz);
//transform->Velocity = glm::vec3(0.f, 10.f, 100.f); transform->Velocity = glm::vec3(0.f, 10.f, 0);
sound->Loop = true; sound->Loop = true;
sound->Gain = 1.f; sound->Gain = 1.f;
@@ -78,7 +77,7 @@ void Systems::LevelGenerationSystem::SpawnObstacle()
// Put it below ground level // Put it below ground level
//transform->Position.y -= bounds->VolumeVector.y * 2.f; transform->Position.y -= bounds->VolumeVector.y * 2.f;
} }
@@ -94,40 +93,30 @@ void Systems::LevelGenerationSystem::Update( double dt )
for(auto ent : obstacles)
{
auto transform = m_World->GetComponent<Components::Transform>(ent, "Transform");
if(transform != nullptr)
{
transform->Velocity.z = velocity;
transform->Position += transform->Velocity * (float)dt;
// Stop raising obstacles when they reach ground level
if (transform->Velocity.y > 0 && transform->Position.y >= 0) {
transform->Position.y = 0;
transform->Velocity.y = 0;
}
if(transform->Position.z > 800)
{
removethis.push_back(ent);
}
}
}
for(auto ent : removethis)
{
m_World->RemoveEntity(ent);
obstacles.remove(ent);
}
removethis.clear();
} }
void Systems::LevelGenerationSystem::UpdateEntity( double dt, EntityID entity, EntityID parent ) void Systems::LevelGenerationSystem::UpdateEntity( double dt, EntityID entity, EntityID parent )
{ {
if( m_World->GetProperty<std::string>(entity, "Name") == "Obstacle" || m_World->GetProperty<std::string>(entity, "Name") == "PowerUp")
{
auto transform = m_World->GetComponent<Components::Transform>(entity, "Transform");
transform->Velocity.z = velocity;
transform->Position += transform->Velocity * (float)dt;
// Stop raising obstacles when they reach ground level
if (transform->Velocity.y > 0 && transform->Position.y >= 0)
{
transform->Position.y = 0;
transform->Velocity.y = 0;
}
if(transform->Position.z > 800)
m_World->RemoveEntity(entity);
}
if( m_World->GetProperty<std::string>(entity, "Name") == "Player") if( m_World->GetProperty<std::string>(entity, "Name") == "Player")
{ {
auto transformComponent = m_World->GetComponent<Components::Transform>(entity, "Transform"); auto transformComponent = m_World->GetComponent<Components::Transform>(entity, "Transform");
@@ -31,10 +31,7 @@ namespace Systems
int positionRandom; int positionRandom;
glm::vec2 startyz; glm::vec2 startyz;
float startx; float startx;
std::list<EntityID> removethis;
double elapsedtime; double elapsedtime;
std::list<EntityID> obstacles;
float velocity; float velocity;
}; };
} }
+4 -6
View File
@@ -153,18 +153,16 @@ void Systems::PlayerSystem::UpdateEntity(double dt, EntityID entity, EntityID pa
if(name == "PowerUp") if(name == "PowerUp")
{ {
auto powerupComp = m_World->GetComponent<Components::PowerUp>(ent, "PowerUp"); auto powerupComp = m_World->GetComponent<Components::PowerUp>(ent, "PowerUp");
if(powerupComp != nullptr) transform->Velocity.z = powerupComp->Speed;
{ m_poweruptimeleft = 3.f;
transform->Velocity.z = powerupComp->Speed; m_World->RemoveEntity(ent);
m_poweruptimeleft = 3.f;
m_World->RemoveEntity(ent);
}
} }
} }
if(m_poweruptimeleft <= 0) if(m_poweruptimeleft <= 0)
{ {
transform->Velocity.z = m_basespeed; transform->Velocity.z = m_basespeed;
} }
//fixa FOV
// Update camera // Update camera