diff --git a/src/scene/musicnode.cpp b/src/scene/musicnode.cpp index d6670bc..0e47ad5 100644 --- a/src/scene/musicnode.cpp +++ b/src/scene/musicnode.cpp @@ -26,3 +26,8 @@ void MusicNode::stop() if(m_valid) m_music.stop(); } + +void MusicNode::setPlayingOffset(int offset) +{ + m_music.setPlayingOffset(sf::seconds(offset)); +} diff --git a/src/scene/musicnode.h b/src/scene/musicnode.h index 3b542ed..c01ffa3 100644 --- a/src/scene/musicnode.h +++ b/src/scene/musicnode.h @@ -16,7 +16,6 @@ public: void pause(); void stop(); void setPlayingOffset(int offset); - }; #endif // MUSICNODE_H diff --git a/src/scene/playercharacternode.cpp b/src/scene/playercharacternode.cpp index f6176c8..03aa293 100644 --- a/src/scene/playercharacternode.cpp +++ b/src/scene/playercharacternode.cpp @@ -11,6 +11,7 @@ #include "scenetree.h" #include "lightnode.h" #include +#include #define DEFAULT_ROTATION_SPEED 0.001f #define TRIGGER_VALUE 15 @@ -297,6 +298,8 @@ void PlayerCharacterNode::update() m_rigidBody->setLinearVelocity(newVelocity); } m_playerLightNode->update(); + glm::vec3 p = this->getEyePosition(); + sf::Listener::setPosition(p.x,p.y,p.z); } void PlayerCharacterNode::toggleNoClip() diff --git a/src/scene/soundnode.cpp b/src/scene/soundnode.cpp index aa8debf..cda21aa 100644 --- a/src/scene/soundnode.cpp +++ b/src/scene/soundnode.cpp @@ -38,3 +38,10 @@ void SoundNode::stop() if(m_valid) m_sound.stop(); } + +void SoundNode::setPosition(glm::vec3 pos,bool relative) +{ + m_sound.setPosition(pos.x,pos.y,pos.z); + m_sound.setRelativeToListener(relative); +} + diff --git a/src/scene/soundnode.h b/src/scene/soundnode.h index ff3c279..6283be5 100644 --- a/src/scene/soundnode.h +++ b/src/scene/soundnode.h @@ -3,6 +3,7 @@ #include "scene/scenenode.h" #include "SFML/Audio.hpp" +#include "glm/vec3.hpp" class SoundNode : public SceneNode { @@ -15,6 +16,7 @@ public: void play(); void pause(); void stop(); + void setPosition(glm::vec3 pos, bool relative); }; #endif // SOUNDNODE_H