Ndk/ListenerSystem: Handling VelocityComponent
Former-commit-id: 5b9107e77350c9289bf91b4bc6268403650245d3
This commit is contained in:
parent
17e5ae1875
commit
9e3dbb7d09
|
|
@ -6,6 +6,7 @@
|
||||||
#include <Nazara/Audio/Audio.hpp>
|
#include <Nazara/Audio/Audio.hpp>
|
||||||
#include <NDK/Components/ListenerComponent.hpp>
|
#include <NDK/Components/ListenerComponent.hpp>
|
||||||
#include <NDK/Components/NodeComponent.hpp>
|
#include <NDK/Components/NodeComponent.hpp>
|
||||||
|
#include <NDK/Components/VelocityComponent.hpp>
|
||||||
|
|
||||||
namespace Ndk
|
namespace Ndk
|
||||||
{
|
{
|
||||||
|
|
@ -16,6 +17,8 @@ namespace Ndk
|
||||||
|
|
||||||
void ListenerSystem::Update(float elapsedTime)
|
void ListenerSystem::Update(float elapsedTime)
|
||||||
{
|
{
|
||||||
|
NazaraUnused(elapsedTime);
|
||||||
|
|
||||||
unsigned int activeListenerCount = 0;
|
unsigned int activeListenerCount = 0;
|
||||||
|
|
||||||
for (const Ndk::EntityHandle& entity : GetEntities())
|
for (const Ndk::EntityHandle& entity : GetEntities())
|
||||||
|
|
@ -25,10 +28,19 @@ namespace Ndk
|
||||||
if (!listener.IsActive())
|
if (!listener.IsActive())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
// On récupère la position et la rotation pour les affecter au listener
|
||||||
const NodeComponent& node = entity->GetComponent<NodeComponent>();
|
const NodeComponent& node = entity->GetComponent<NodeComponent>();
|
||||||
NzAudio::SetListenerPosition(node.GetPosition(nzCoordSys_Global));
|
NzAudio::SetListenerPosition(node.GetPosition(nzCoordSys_Global));
|
||||||
NzAudio::SetListenerRotation(node.GetRotation(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<VelocityComponent>())
|
||||||
|
{
|
||||||
|
const VelocityComponent& velocity = entity->GetComponent<VelocityComponent>();
|
||||||
|
NzAudio::SetListenerVelocity(velocity.linearVelocity);
|
||||||
|
}
|
||||||
|
|
||||||
activeListenerCount++;
|
activeListenerCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue