35 lines
971 B
C#
35 lines
971 B
C#
using Microsoft.Xna.Framework.Graphics;
|
|
|
|
using Syntriax.Engine.Core;
|
|
using Syntriax.Engine.Integration.MonoGame;
|
|
|
|
namespace Pong.Behaviours;
|
|
|
|
public class TextScoreBehaviour(bool IsLeft) : TextBehaviour, IFirstFrameUpdate
|
|
{
|
|
public readonly bool IsLeft = IsLeft;
|
|
|
|
private PongManagerBehaviour pongManager = null!;
|
|
|
|
public void FirstActiveFrame()
|
|
{
|
|
MonoGameWindow monoGameWindow = Universe.FindRequiredBehaviour<MonoGameWindowContainer>().Window;
|
|
Font = monoGameWindow.Content.Load<SpriteFont>("UbuntuMono");
|
|
|
|
pongManager = Universe.FindRequiredBehaviour<PongManagerBehaviour>();
|
|
|
|
pongManager.OnScored += UpdateScores;
|
|
pongManager.OnReset += UpdateScores;
|
|
|
|
UpdateScores(pongManager);
|
|
}
|
|
|
|
private void UpdateScores(PongManagerBehaviour pongManager)
|
|
{
|
|
if (IsLeft)
|
|
Text = pongManager.ScoreLeft.ToString();
|
|
else
|
|
Text = pongManager.ScoreRight.ToString();
|
|
}
|
|
}
|