From 9e3dbb7d0962451e31aa0ffc60adf46c80b61763 Mon Sep 17 00:00:00 2001 From: Lynix Date: Thu, 23 Apr 2015 15:10:19 +0200 Subject: [PATCH] Ndk/ListenerSystem: Handling VelocityComponent Former-commit-id: 5b9107e77350c9289bf91b4bc6268403650245d3 --- SDK/src/NDK/Systems/ListenerSystem.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/SDK/src/NDK/Systems/ListenerSystem.cpp b/SDK/src/NDK/Systems/ListenerSystem.cpp index e7a90c5a9..d7cede524 100644 --- a/SDK/src/NDK/Systems/ListenerSystem.cpp +++ b/SDK/src/NDK/Systems/ListenerSystem.cpp @@ -6,6 +6,7 @@ #include #include #include +#include namespace Ndk { @@ -16,6 +17,8 @@ namespace Ndk void ListenerSystem::Update(float elapsedTime) { + NazaraUnused(elapsedTime); + unsigned int activeListenerCount = 0; for (const Ndk::EntityHandle& entity : GetEntities()) @@ -25,10 +28,19 @@ namespace Ndk if (!listener.IsActive()) continue; + // On récupère la position et la rotation pour les affecter au listener const NodeComponent& node = entity->GetComponent(); NzAudio::SetListenerPosition(node.GetPosition(nzCoordSys_Global)); NzAudio::SetListenerRotation(node.GetRotation(nzCoordSys_Global)); + // On vérifie la présence d'une donnée de vitesse, et on l'affecte + // (La vitesse du listener Audio ne le fait pas se déplacer, mais affecte par exemple l'effet Doppler) + if (entity->HasComponent()) + { + const VelocityComponent& velocity = entity->GetComponent(); + NzAudio::SetListenerVelocity(velocity.linearVelocity); + } + activeListenerCount++; }