feat: added game audios

This commit is contained in:
2025-07-27 18:51:53 +03:00
parent a781d92996
commit d30d1e0d5c
7 changed files with 49 additions and 4 deletions

View File

@@ -1,12 +1,16 @@
using System;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Syntriax.Engine.Core;
using Syntriax.Engine.Core.Debug;
using Syntriax.Engine.Integration.MonoGame;
using Syntriax.Engine.Network;
namespace Pong.Behaviours;
public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate,
public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate, ILoadContent,
IPacketListenerClient<PongManager.ScorePacket>
{
public Action<PongManager>? OnReset { get; set; } = null;
@@ -17,6 +21,7 @@ public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate,
private INetworkCommunicatorServer? networkServer = null;
private ILogger? logger = null;
private SoundEffectInstance? gameEndSoundEffect = null;
public int ScoreLeft { get; private set; } = 0;
public int ScoreRight { get; private set; } = 0;
@@ -24,7 +29,6 @@ public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate,
public int WinScore { get; } = 5;
public Ball Ball { get; private set; } = null!;
public bool IsGameInProgress { get; private set; } = false;
public PongManager() => WinScore = 5;
@@ -37,6 +41,11 @@ public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate,
logger = Universe.FindBehaviour<ILogger>();
}
public void LoadContent(ContentManager content)
{
gameEndSoundEffect = content.Load<SoundEffect>("Audio/Win").CreateInstance();
}
public void ScoreToLeft()
{
ScoreLeft++;
@@ -92,6 +101,7 @@ public class PongManager : Behaviour, INetworkEntity, IFirstFrameUpdate,
if (ScoreLeft > halfwayScore || ScoreRight > halfwayScore)
{
IsGameInProgress = false;
gameEndSoundEffect?.Play();
OnFinished?.Invoke(this);
logger?.Log(this, $"Game finished");
return;