From df13663ca8c885f4724fa622a61a8410db8294f6 Mon Sep 17 00:00:00 2001 From: Stiffly Date: Tue, 13 May 2014 00:55:42 +0200 Subject: [PATCH] Two emitters and following camera --- assets | 2 +- src/Components/ParticleEmitter.h | 1 + src/GameWorld.cpp | 70 +++++++++++++++++++++----------- 3 files changed, 49 insertions(+), 24 deletions(-) diff --git a/assets b/assets index e2b54e6..908d0eb 160000 --- a/assets +++ b/assets @@ -1 +1 @@ -Subproject commit e2b54e6212eb1233e6f9935b9e5d7c0295f9ffc6 +Subproject commit 908d0eb8034d334437e79a2e524de9c7d9310ea6 diff --git a/src/Components/ParticleEmitter.h b/src/Components/ParticleEmitter.h index 1b30c8d..bb57c99 100755 --- a/src/Components/ParticleEmitter.h +++ b/src/Components/ParticleEmitter.h @@ -23,6 +23,7 @@ struct ParticleEmitter : Component EntityID ParticleTemplate; float SpawnFrequency; + float Speed; int SpawnCount; std::vector ColorSpectrum; std::vector ScaleSpectrum; diff --git a/src/GameWorld.cpp b/src/GameWorld.cpp index 1cae957..056598c 100755 --- a/src/GameWorld.cpp +++ b/src/GameWorld.cpp @@ -69,18 +69,7 @@ void GameWorld::Initialize() CommitEntity(ground); } - { - auto camera = CreateEntity(); - auto transform = AddComponent(camera, "Transform"); - transform->Position.z = 20.f; - transform->Position.y = 10.f; - transform->Orientation = glm::quat(glm::vec3(-glm::pi() / 8.f, 0.f, 0.f)); - auto cameraComp = AddComponent(camera, "Camera"); - cameraComp->FarClip = 2000.f; - AddComponent(camera, "Input"); - auto freeSteering = AddComponent(camera, "FreeSteering"); - CommitEntity(camera); - } + /*{ auto jeep = CreateEntity(); @@ -398,6 +387,30 @@ void GameWorld::Initialize() Wheel->ConnectedToHandbrake = true; Wheel->TorqueRatio = 0.125f; CommitEntity(wheel); + + auto entity = CreateEntity(tank); + auto transformComponent = AddComponent(entity, "Transform"); + transformComponent->Position = glm::vec3(2,-1.7,2.0); + transformComponent->Scale = glm::vec3(3,3,3); + transformComponent->Orientation = glm::angleAxis(glm::pi()/2, glm::vec3(1,0,0)); + auto emitterComponent = AddComponent(entity, "ParticleEmitter"); + emitterComponent->SpawnCount = 2; + emitterComponent->SpawnFrequency = 0.005; + emitterComponent->SpreadAngle = glm::pi(); + emitterComponent->UseGoalVelocity = false; + emitterComponent->LifeTime = 0.5; + //emitterComponent->AngularVelocitySpectrum.push_back(glm::pi() / 100); + emitterComponent->ScaleSpectrum.push_back(glm::vec3(0.05)); + CommitEntity(entity); + + auto particleEntity = CreateEntity(entity); + auto TEMP = AddComponent(particleEntity, "Transform"); + TEMP->Scale = glm::vec3(0); + auto spriteComponent = AddComponent(particleEntity, "Sprite"); + spriteComponent->SpriteFile = "Models/Textures/Sprites/Dust.png"; + emitterComponent->ParticleTemplate = particleEntity; + + CommitEntity(particleEntity); } { @@ -437,20 +450,19 @@ void GameWorld::Initialize() Wheel->TorqueRatio = 0.125f; CommitEntity(wheel); - auto entity = CreateEntity(wheel); + auto entity = CreateEntity(tank); auto transformComponent = AddComponent(entity, "Transform"); - /*transformComponent->Position = glm::vec3(0,3,0);*/ + transformComponent->Position = glm::vec3(-2,-1.7,2.0); transformComponent->Scale = glm::vec3(3,3,3); transformComponent->Orientation = glm::angleAxis(glm::pi()/2, glm::vec3(1,0,0)); auto emitterComponent = AddComponent(entity, "ParticleEmitter"); emitterComponent->SpawnCount = 2; - emitterComponent->SpawnFrequency = 0.01; - emitterComponent->SpreadAngle = glm::pi()/4; + emitterComponent->SpawnFrequency = 0.005; + emitterComponent->SpreadAngle = glm::pi(); emitterComponent->UseGoalVelocity = false; - emitterComponent->LifeTime = 2.0; - emitterComponent->ScaleSpectrum.push_back(glm::vec3(0.1)); - auto modelComponent = AddComponent(entity, "Model"); - modelComponent->ModelFile = "Models/Placeholders/PhysicsTest/PointLight.obj"; + emitterComponent->LifeTime = 0.5; + //emitterComponent->AngularVelocitySpectrum.push_back(glm::pi() / 100); + emitterComponent->ScaleSpectrum.push_back(glm::vec3(0.05)); CommitEntity(entity); auto particleEntity = CreateEntity(entity); @@ -464,8 +476,23 @@ void GameWorld::Initialize() } CommitEntity(tank); + { + auto camera = CreateEntity(tank); + auto transform = AddComponent(camera, "Transform"); + transform->Position.z = 20.f; + transform->Position.y = 7.f; + //transform->Orientation = glm::quat(glm::vec3(-glm::pi() / 8.f, 0.f, 0.f)); + transform->Orientation = glm::angleAxis(glm::pi() / 100, glm::vec3(1,0,0)); + auto cameraComp = AddComponent(camera, "Camera"); + cameraComp->FarClip = 2000.f; + AddComponent(camera, "Input"); + auto freeSteering = AddComponent(camera, "FreeSteering"); + CommitEntity(camera); + } } + + /* for(int i = 0; i < 10; i++) { @@ -554,9 +581,6 @@ void GameWorld::Initialize() CommitEntity(entity); }*/ - { - - } } void GameWorld::Update(double dt)