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

@@ -4,7 +4,6 @@ using Microsoft.Xna.Framework.Input;
using Syntriax.Engine.Core;
using Syntriax.Engine.Core.Debug;
using Syntriax.Engine.Core.Exceptions;
using Syntriax.Engine.Integration.MonoGame;
using Syntriax.Engine.Network;
using Syntriax.Engine.Systems.Input;
@@ -13,7 +12,7 @@ using Syntriax.Engine.Systems.Tween;
namespace Pong.Behaviours;
public class PongGameStarter : Behaviour, INetworkEntity, IFirstFrameUpdate,
public class PongGameStarter : Behaviour, INetworkEntity, IFirstFrameUpdate, ILoadContent,
IPacketListenerServer<PongGameStarter.RequestStartPacket>,
IPacketListenerClient<PongGameStarter.RequestStartPacket>
{
@@ -29,6 +28,9 @@ public class PongGameStarter : Behaviour, INetworkEntity, IFirstFrameUpdate,
private Label? label = null;
private TickerTimer timer = null!;
private SoundEffectInstance? tickSoundEffect = null;
private SoundEffectInstance? startSoundEffect = null;
public void FirstActiveFrame()
{
IButtonInputs<Keys>? buttonInputs = Universe.FindBehaviour<IButtonInputs<Keys>>();
@@ -50,6 +52,12 @@ public class PongGameStarter : Behaviour, INetworkEntity, IFirstFrameUpdate,
}
}
public void LoadContent(ContentManager content)
{
tickSoundEffect = content.Load<SoundEffect>("Audio/TimerTick").CreateInstance();
startSoundEffect = content.Load<SoundEffect>("Audio/TimerEnd").CreateInstance();
}
private void OnCountdownStart(IReadOnlyTimer sender)
{
pongManager.Reset();
@@ -58,6 +66,8 @@ public class PongGameStarter : Behaviour, INetworkEntity, IFirstFrameUpdate,
private void DisplayCountdown(ITicker sender)
{
tickSoundEffect?.Play();
if (label != null)
{
label.Text = $"{START_COUNTDOWN - timer.TickCounter}";
@@ -69,6 +79,7 @@ public class PongGameStarter : Behaviour, INetworkEntity, IFirstFrameUpdate,
private void StartPong(IReadOnlyTimer sender)
{
startSoundEffect?.Play();
pongManager.Start();
}