feat: score audio added
This commit is contained in:
parent
52d5c8fc47
commit
8dbda18a80
2
Engine
2
Engine
@ -1 +1 @@
|
||||
Subproject commit 37aca44e45923511500ee1e6a8f39a30810b7f63
|
||||
Subproject commit 03232f72e8f045fa3b5731a2b3839425f8ea9721
|
@ -11,6 +11,7 @@ using Syntriax.Engine.Network;
|
||||
namespace Pong.Behaviours;
|
||||
|
||||
public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate, ILoadContent,
|
||||
IPacketListenerClient<PongManager.StartPacket>,
|
||||
IPacketListenerClient<PongManager.ScorePacket>
|
||||
{
|
||||
public Action<PongManager>? OnReset { get; set; } = null;
|
||||
@ -21,6 +22,7 @@ public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate, ILoadCo
|
||||
|
||||
private INetworkCommunicatorServer? networkServer = null;
|
||||
private ILogger? logger = null;
|
||||
private SoundEffectInstance? scoreSoundEffect = null;
|
||||
private SoundEffectInstance? gameEndSoundEffect = null;
|
||||
|
||||
public int ScoreLeft { get; private set; } = 0;
|
||||
@ -44,21 +46,18 @@ public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate, ILoadCo
|
||||
public void LoadContent(ContentManager content)
|
||||
{
|
||||
gameEndSoundEffect = content.Load<SoundEffect>("Audio/Win").CreateInstance();
|
||||
scoreSoundEffect = content.Load<SoundEffect>("Audio/Score").CreateInstance();
|
||||
}
|
||||
|
||||
public void ScoreToLeft()
|
||||
{
|
||||
ScoreLeft++;
|
||||
OnScoreUpdated?.Invoke(this);
|
||||
|
||||
PostScoreUpdate();
|
||||
}
|
||||
|
||||
public void ScoreToRight()
|
||||
{
|
||||
ScoreRight++;
|
||||
OnScoreUpdated?.Invoke(this);
|
||||
|
||||
PostScoreUpdate();
|
||||
}
|
||||
|
||||
@ -73,6 +72,7 @@ public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate, ILoadCo
|
||||
Reset();
|
||||
IsGameInProgress = true;
|
||||
PostScoreUpdate();
|
||||
networkServer.SendToAll(new StartPacket());
|
||||
logger?.Log(this, $"Game started");
|
||||
return true;
|
||||
}
|
||||
@ -89,6 +89,7 @@ public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate, ILoadCo
|
||||
|
||||
private void PostScoreUpdate()
|
||||
{
|
||||
OnScoreUpdated?.Invoke(this);
|
||||
Ball.ResetBall();
|
||||
|
||||
if (networkServer is not null)
|
||||
@ -103,7 +104,7 @@ public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate, ILoadCo
|
||||
IsGameInProgress = false;
|
||||
gameEndSoundEffect?.Play();
|
||||
OnFinished?.Invoke(this);
|
||||
logger?.Log(this, $"Game finished");
|
||||
logger?.Log(this, $"Game finished: {ScoreLeft} - {ScoreRight}");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -123,10 +124,21 @@ public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate, ILoadCo
|
||||
ScoreLeft = packet.Left;
|
||||
ScoreRight = packet.Right;
|
||||
|
||||
OnScoreUpdated?.Invoke(this);
|
||||
PostScoreUpdate();
|
||||
|
||||
if (IsGameInProgress && (ScoreLeft != 0 || ScoreRight != 0))
|
||||
scoreSoundEffect?.Play();
|
||||
|
||||
logger?.Log(this, $"Client score update packet arrived: {packet.Left} - {packet.Right}");
|
||||
}
|
||||
|
||||
void IPacketListenerClient<StartPacket>.OnClientPacketArrived(IConnection sender, StartPacket packet)
|
||||
{
|
||||
IsGameInProgress = true;
|
||||
logger?.Log(this, $"Game started");
|
||||
}
|
||||
|
||||
private class StartPacket : INetworkPacket;
|
||||
private class ScorePacket : INetworkPacket
|
||||
{
|
||||
public int Left { get; set; }
|
||||
|
BIN
Shared/Content/Audio/Score.wav
Normal file
BIN
Shared/Content/Audio/Score.wav
Normal file
Binary file not shown.
@ -19,6 +19,12 @@
|
||||
/processorParam:Quality=Best
|
||||
/build:Audio/Bounce.wav
|
||||
|
||||
#begin Audio/Score.wav
|
||||
/importer:WavImporter
|
||||
/processor:SoundEffectProcessor
|
||||
/processorParam:Quality=Best
|
||||
/build:Audio/Score.wav
|
||||
|
||||
#begin Audio/Win.wav
|
||||
/importer:WavImporter
|
||||
/processor:SoundEffectProcessor
|
||||
|
Loading…
x
Reference in New Issue
Block a user