From b35ad2732b1081c1ff95dc72401e95403aca1fcd Mon Sep 17 00:00:00 2001 From: Adam Date: Mon, 10 Mar 2014 02:36:02 +0100 Subject: [PATCH] SOUNDEMITTER COMPLETE!?!?!? --- Escape-the-Dawn/GameWorld.h | 12 ++++- Escape-the-Dawn/Sound/hallelujah.wav | Bin 0 -> 98254 bytes Escape-the-Dawn/Systems/SoundSystem.h | 6 +-- Escape-the-Dawn/Systems/SoundsSystem.cpp | 59 ++++++++++++++--------- 4 files changed, 49 insertions(+), 28 deletions(-) create mode 100644 Escape-the-Dawn/Sound/hallelujah.wav diff --git a/Escape-the-Dawn/GameWorld.h b/Escape-the-Dawn/GameWorld.h index afe8dc8..8a170fe 100644 --- a/Escape-the-Dawn/GameWorld.h +++ b/Escape-the-Dawn/GameWorld.h @@ -57,7 +57,7 @@ void GameWorld::Initialize() //AddSystem("CollisionSystem"); //AddSystem("ParticleSystem"); AddSystem("PlayerSystem"); - //AddSystem("SoundSystem"); + AddSystem("SoundSystem"); AddSystem("RenderSystem"); std::shared_ptr transform; @@ -70,6 +70,14 @@ void GameWorld::Initialize() transform->Position = glm::vec3(0.f, 0.f, 0.f); model = AddComponent(ent, "Model"); model->ModelFile = "ship.obj"; + auto soundEmitter = AddComponent(ent, "SoundEmitter"); + soundEmitter->Gain = 1; + soundEmitter->MaxDistance = 10; + soundEmitter->Loop = true; + soundEmitter->ReferenceDistance = 0.1; + soundEmitter->Pitch = 1; + GetSystem("SoundSystem")->PlaySound(soundEmitter, "hallelujah.wav"); + ent = CreateEntity(); SetProperty(ent, "Name", std::string("Camera")); @@ -90,7 +98,7 @@ void GameWorld::RegisterSystems() //m_SystemFactory.Register("CollisionSystem", [this]() { return new Systems::CollisionSystem(this); }); //m_SystemFactory.Register("ParticleSystem", [this]() { return new Systems::ParticleSystem(this); }); m_SystemFactory.Register("PlayerSystem", [this]() { return new Systems::PlayerSystem(this); }); - //m_SystemFactory.Register("SoundSystem", [this]() { return new Systems::SoundSystem(this); }); + m_SystemFactory.Register("SoundSystem", [this]() { return new Systems::SoundSystem(this); }); m_SystemFactory.Register("RenderSystem", [this]() { return new Systems::RenderSystem(this, m_Renderer); }); } diff --git a/Escape-the-Dawn/Sound/hallelujah.wav b/Escape-the-Dawn/Sound/hallelujah.wav new file mode 100644 index 0000000000000000000000000000000000000000..f103f96dd8eb80b97cd0fe0a47aed84f6cb76ed1 GIT binary patch literal 98254 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�E+)NFYGUyr36rjZy*FYxdw!3I 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