Added some comments.
This commit is contained in:
@@ -14,19 +14,24 @@ public:
|
|||||||
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& cComponent, double dt) override;
|
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& cComponent, double dt) override;
|
||||||
virtual void Update(double dt) override;
|
virtual void Update(double dt) override;
|
||||||
private:
|
private:
|
||||||
|
// The logic for making the sound play when player is moving
|
||||||
void playerStep(double dt);
|
void playerStep(double dt);
|
||||||
EntityWrapper m_LocalPlayer = EntityWrapper();
|
EntityWrapper m_LocalPlayer = EntityWrapper();
|
||||||
|
|
||||||
World* m_World = nullptr;
|
World* m_World = nullptr;
|
||||||
EventBroker* m_EventBroker = nullptr;
|
EventBroker* m_EventBroker = nullptr;
|
||||||
|
|
||||||
|
// Logic for playing a sound when a player jumps
|
||||||
void playerJumps();
|
void playerJumps();
|
||||||
|
|
||||||
|
// Walking logic
|
||||||
// TODO: WIP Update this
|
// Keeps track of how far the player has walked within this "key press session".
|
||||||
float m_DistanceMoved = 0.0f;
|
float m_DistanceMoved = 0.0f;
|
||||||
const float m_PlayerStepLength = 2.0f;
|
// How far a step is (How often the step sound will be played).
|
||||||
|
const float m_PlayerStepLength = 1.75f;
|
||||||
|
// To get a difference when calculating the walking state.
|
||||||
glm::vec3 m_LastPosition = glm::vec3();
|
glm::vec3 m_LastPosition = glm::vec3();
|
||||||
|
// Determine what sound file to play.
|
||||||
bool m_LeftFoot = false;
|
bool m_LeftFoot = false;
|
||||||
|
|
||||||
EventRelay<SoundSystem, Events::PlayerSpawned> m_EPlayerSpawned;
|
EventRelay<SoundSystem, Events::PlayerSpawned> m_EPlayerSpawned;
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ void SoundSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& cComp
|
|||||||
void SoundSystem::Update(double dt)
|
void SoundSystem::Update(double dt)
|
||||||
{
|
{
|
||||||
playerStep(dt);
|
playerStep(dt);
|
||||||
|
// Update listener and emitters.
|
||||||
SoundManager::Update(dt);
|
SoundManager::Update(dt);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -28,11 +29,13 @@ void SoundSystem::playerStep(double dt)
|
|||||||
if (!m_LocalPlayer.Valid()) {
|
if (!m_LocalPlayer.Valid()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// Position of the local player, used see how far a player has moved.
|
||||||
glm::vec3 pos = (glm::vec3)m_World->GetComponent(m_LocalPlayer.ID, "Transform")["Position"];
|
glm::vec3 pos = (glm::vec3)m_World->GetComponent(m_LocalPlayer.ID, "Transform")["Position"];
|
||||||
|
// Velocity of the local player, used to see if a player is airborne.
|
||||||
glm::vec3 vel = (glm::vec3)m_World->GetComponent(m_LocalPlayer.ID, "Physics")["Velocity"];
|
glm::vec3 vel = (glm::vec3)m_World->GetComponent(m_LocalPlayer.ID, "Physics")["Velocity"];
|
||||||
glm::vec3 difference = pos - m_LastPosition;
|
m_DistanceMoved += glm::length(pos - m_LastPosition);
|
||||||
|
// Set the last position for next iteration
|
||||||
m_LastPosition = pos;
|
m_LastPosition = pos;
|
||||||
m_DistanceMoved += glm::length(difference);
|
|
||||||
bool isAirborne = vel.y != 0;
|
bool isAirborne = vel.y != 0;
|
||||||
if (m_DistanceMoved > m_PlayerStepLength && !isAirborne) {
|
if (m_DistanceMoved > m_PlayerStepLength && !isAirborne) {
|
||||||
// Player moved a step's distance
|
// Player moved a step's distance
|
||||||
@@ -56,11 +59,11 @@ bool SoundSystem::OnPlayerSpawned(const Events::PlayerSpawned &e)
|
|||||||
event.FilePath = "Audio/announcer/go.wav";
|
event.FilePath = "Audio/announcer/go.wav";
|
||||||
m_EventBroker->Publish(event);
|
m_EventBroker->Publish(event);
|
||||||
// TEMP: starts bgm
|
// TEMP: starts bgm
|
||||||
// {
|
{
|
||||||
// Events::PlayBackgroundMusic ev;
|
Events::PlayBackgroundMusic ev;
|
||||||
// ev.FilePath = "Audio/bgm/ambient.wav";
|
ev.FilePath = "Audio/bgm/ambient.wav";
|
||||||
// m_EventBroker->Publish(ev);
|
m_EventBroker->Publish(ev);
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -76,7 +79,7 @@ bool SoundSystem::OnInputCommand(const Events::InputCommand & e)
|
|||||||
if (e.Command == "Forward" || e.Command == "Right") {
|
if (e.Command == "Forward" || e.Command == "Right") {
|
||||||
if (e.Value == 0) {
|
if (e.Value == 0) {
|
||||||
// Key released
|
// Key released
|
||||||
// Reset the distance moved
|
// Reset the distance moved (player walk logic)
|
||||||
m_DistanceMoved = 0.f;
|
m_DistanceMoved = 0.f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user