Compare commits

...

3 Commits

Author SHA1 Message Date
Syntriax 73ae55e1d4 refactor: Actions to Delegates 2024-07-15 01:17:05 +03:00
Syntriax a35e25eb31 refactor: Renamed Cacher to Collector 2024-02-09 17:52:23 +03:00
Syntriax 775f24c560 chore: Engine Update 2024-02-09 11:53:57 +03:00
3 changed files with 16 additions and 12 deletions

2
Engine

@ -1 +1 @@
Subproject commit 5d897f2f56c711629f8cbf915d0ed112cf21680f Subproject commit ef21cdf2138a2f5107a628c0fe970b88bc03dcfd

View File

@ -8,9 +8,9 @@ namespace Pong.Behaviours;
public class MonoGameCamera2DBehaviour(GraphicsDeviceManager Graphics) : BehaviourOverride, ICamera2D public class MonoGameCamera2DBehaviour(GraphicsDeviceManager Graphics) : BehaviourOverride, ICamera2D
{ {
public System.Action<MonoGameCamera2DBehaviour>? OnMatrixTransformChanged { get; set; } = null; public event OnMatrixTransformChangedDelegate? OnMatrixTransformChanged = null;
public System.Action<MonoGameCamera2DBehaviour>? OnViewportChanged { get; set; } = null; public event OnViewportChangedDelegate? OnViewportChanged = null;
public System.Action<MonoGameCamera2DBehaviour>? OnZoomChanged { get; set; } = null; public event OnZoomChangedDelegate? OnZoomChanged = null;
private Matrix _matrixTransform = Matrix.Identity; private Matrix _matrixTransform = Matrix.Identity;
@ -72,7 +72,7 @@ public class MonoGameCamera2DBehaviour(GraphicsDeviceManager Graphics) : Behavio
set => Transform.Rotation = value; set => Transform.Rotation = value;
} }
System.Action<IAssignableTransform>? IAssignableTransform.OnTransformAssigned { get => GameObject.OnTransformAssigned; set => GameObject.OnTransformAssigned = value; } public event IAssignableTransform.OnTransformAssignedDelegate? OnTransformAssigned { add => GameObject.OnTransformAssigned += value; remove => GameObject.OnTransformAssigned -= value; }
ITransform IAssignableTransform.Transform => GameObject.Transform; ITransform IAssignableTransform.Transform => GameObject.Transform;
bool IAssignableTransform.Assign(ITransform transform) => GameObject.Assign(transform); bool IAssignableTransform.Assign(ITransform transform) => GameObject.Assign(transform);
@ -99,4 +99,8 @@ public class MonoGameCamera2DBehaviour(GraphicsDeviceManager Graphics) : Behavio
Matrix.CreateScale(Zoom) * Matrix.CreateScale(Zoom) *
Matrix.CreateTranslation(new Vector3(_viewport.Width * .5f, _viewport.Height * .5f, 0f)); Matrix.CreateTranslation(new Vector3(_viewport.Width * .5f, _viewport.Height * .5f, 0f));
} }
public delegate void OnMatrixTransformChangedDelegate(MonoGameCamera2DBehaviour sender);
public delegate void OnViewportChangedDelegate(MonoGameCamera2DBehaviour sender);
public delegate void OnZoomChangedDelegate(MonoGameCamera2DBehaviour sender);
} }

View File

@ -22,8 +22,8 @@ public class GamePong : Game
private ShapeBatch shapeBatch = null!; private ShapeBatch shapeBatch = null!;
private GameManager gameManager = null!; private GameManager gameManager = null!;
private BehaviourCacher<IDisplayableSprite> displayableCacher = null!; private BehaviourCollector<IDisplayableSprite> displayableCollector = null!;
private BehaviourCacher<IDisplayableShape> displayableShapeCacher = null!; private BehaviourCollector<IDisplayableShape> displayableShapeCollector = null!;
private MonoGameCamera2DBehaviour cameraBehaviour = null!; private MonoGameCamera2DBehaviour cameraBehaviour = null!;
private PongManagerBehaviour pongManager = null!; private PongManagerBehaviour pongManager = null!;
@ -47,9 +47,9 @@ public class GamePong : Game
{ {
// TODO: Add your initialization logic here // TODO: Add your initialization logic here
gameManager = new(); gameManager = new();
displayableCacher = new(gameManager); displayableCollector = new(gameManager);
displayableShapeCacher = new(gameManager); displayableShapeCollector = new(gameManager);
physicsEngine = new PhysicsEngine2DCacher(gameManager) { IterationPerStep = 3 }; physicsEngine = new PhysicsEngine2DCollector(gameManager) { IterationPerStep = 3 };
gameManager.Initialize(); gameManager.Initialize();
@ -154,12 +154,12 @@ public class GamePong : Game
gameManager.PreDraw(); gameManager.PreDraw();
spriteBatch.Begin(SpriteSortMode.Deferred, transformMatrix: cameraBehaviour.MatrixTransform); spriteBatch.Begin(SpriteSortMode.Deferred, transformMatrix: cameraBehaviour.MatrixTransform);
foreach (var displayable in displayableCacher) foreach (var displayable in displayableCollector)
displayable.Draw(spriteBatch); displayable.Draw(spriteBatch);
spriteBatch.End(); spriteBatch.End();
shapeBatch.Begin(cameraBehaviour.MatrixTransform); shapeBatch.Begin(cameraBehaviour.MatrixTransform);
foreach (var displayableShape in displayableShapeCacher) foreach (var displayableShape in displayableShapeCollector)
displayableShape.Draw(shapeBatch); displayableShape.Draw(shapeBatch);
shapeBatch.End(); shapeBatch.End();