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;
ent = m_World->CreateEntity();
obstacles.push_back(ent);
auto transform = m_World->AddComponent<Components::Transform>(ent, "Transform");
auto bounds = m_World->AddComponent<Components::Bounds>(ent, "Bounds");
@@ -28,7 +27,7 @@ void Systems::LevelGenerationSystem::SpawnObstacle()
positionRandom = -500 + startx + (rand() % 1000);
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->Gain = 1.f;
@@ -78,7 +77,7 @@ void Systems::LevelGenerationSystem::SpawnObstacle()
// 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 )
{
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")
{
auto transformComponent = m_World->GetComponent<Components::Transform>(entity, "Transform");
@@ -31,10 +31,7 @@ namespace Systems
int positionRandom;
glm::vec2 startyz;
float startx;
std::list<EntityID> removethis;
double elapsedtime;
std::list<EntityID> obstacles;
float velocity;
};
}
+4 -6
View File
@@ -153,18 +153,16 @@ void Systems::PlayerSystem::UpdateEntity(double dt, EntityID entity, EntityID pa
if(name == "PowerUp")
{
auto powerupComp = m_World->GetComponent<Components::PowerUp>(ent, "PowerUp");
if(powerupComp != nullptr)
{
transform->Velocity.z = powerupComp->Speed;
m_poweruptimeleft = 3.f;
m_World->RemoveEntity(ent);
}
transform->Velocity.z = powerupComp->Speed;
m_poweruptimeleft = 3.f;
m_World->RemoveEntity(ent);
}
}
if(m_poweruptimeleft <= 0)
{
transform->Velocity.z = m_basespeed;
}
//fixa FOV
// Update camera