From 34aa4dbb690db7e9ff2a0bb918c25fd0dd35fe6f Mon Sep 17 00:00:00 2001 From: Syntriax Date: Sun, 13 Apr 2025 22:24:56 +0300 Subject: [PATCH] chore: updated engine --- Engine | 2 +- Platforms/Desktop/KeyboardInputsBehaviour.cs | 8 +- Platforms/Desktop/Program.cs | 6 +- Shared/Behaviours/BallBehaviour.cs | 4 +- Shared/Behaviours/CameraController.cs | 18 +-- .../Behaviours/MonoGameCamera2DBehaviour.cs | 6 +- Shared/Behaviours/MovementBallBehaviour.cs | 2 +- Shared/Behaviours/PaddleBehaviour.cs | 6 +- Shared/Behaviours/PongManagerBehaviour.cs | 10 +- Shared/Behaviours/TextScoreBehaviour.cs | 2 +- Shared/Behaviours/WallScoreBehaviour.cs | 2 +- Shared/EngineConverter.cs | 2 +- Shared/GamePong.cs | 114 +++++++++--------- 13 files changed, 91 insertions(+), 91 deletions(-) diff --git a/Engine b/Engine index 9e4c74e..5c1c025 160000 --- a/Engine +++ b/Engine @@ -1 +1 @@ -Subproject commit 9e4c74ed1d73eac40ed29fbdb1e5103c121844a9 +Subproject commit 5c1c025fe3fa6330ff7a9fb4426ad864dca994f7 diff --git a/Platforms/Desktop/KeyboardInputsBehaviour.cs b/Platforms/Desktop/KeyboardInputsBehaviour.cs index 8d94fdb..7d48384 100644 --- a/Platforms/Desktop/KeyboardInputsBehaviour.cs +++ b/Platforms/Desktop/KeyboardInputsBehaviour.cs @@ -72,8 +72,8 @@ public class KeyboardInputsBehaviour : Behaviour, IButtonInputs if (WasPressed(currentlyPressedKey)) continue; - action.Invoke(this, currentlyPressedKey); - OnAnyButtonPressed?.Invoke(this, currentlyPressedKey); + action.InvokeSafe(this, currentlyPressedKey); + OnAnyButtonPressed?.InvokeSafe(this, currentlyPressedKey); } for (int i = 0; i < cachePressedPreviouslyCount; i++) @@ -86,8 +86,8 @@ public class KeyboardInputsBehaviour : Behaviour, IButtonInputs if (IsPressed(previouslyPressedKey)) continue; - action.Invoke(this, previouslyPressedKey); - OnAnyButtonReleased?.Invoke(this, previouslyPressedKey); + action.InvokeSafe(this, previouslyPressedKey); + OnAnyButtonReleased?.InvokeSafe(this, previouslyPressedKey); } Array.Copy(cachePressedCurrently, cachePressedPreviously, cachePressedCurrentlyCount); diff --git a/Platforms/Desktop/Program.cs b/Platforms/Desktop/Program.cs index a3e4e99..a89d9d4 100644 --- a/Platforms/Desktop/Program.cs +++ b/Platforms/Desktop/Program.cs @@ -1,7 +1,7 @@ using Pong.Platforms.Desktop; using Syntriax.Engine.Core; -Syntriax.Engine.Core.Abstract.IHierarchyObject hierarchyObject = Syntriax.Engine.Core.Factory.HierarchyObjectFactory.Instantiate().SetHierarchyObject("Desktop HO"); -hierarchyObject.BehaviourController.AddBehaviour(); -using var game = new Pong.GamePong(hierarchyObject); +Syntriax.Engine.Core.Abstract.IUniverseObject universeObject = Syntriax.Engine.Core.Factory.UniverseObjectFactory.Instantiate().SetUniverseObject("Desktop HO"); +universeObject.BehaviourController.AddBehaviour(); +using var game = new Pong.GamePong(universeObject); game.Run(); diff --git a/Shared/Behaviours/BallBehaviour.cs b/Shared/Behaviours/BallBehaviour.cs index 20a6e2f..c195a93 100644 --- a/Shared/Behaviours/BallBehaviour.cs +++ b/Shared/Behaviours/BallBehaviour.cs @@ -20,7 +20,7 @@ public class BallBehaviour : Behaviour2D BehaviourController.GetRequiredBehaviour().OnCollisionDetected += OnCollisionDetected; rigidBody = BehaviourController.GetRequiredBehaviour(); - if (HierarchyObject.GameManager.TryFindBehaviour(out PongManagerBehaviour? pongManager)) + if (UniverseObject.Universe.TryFindBehaviour(out PongManagerBehaviour? pongManager)) { pongManager.OnReset += ResetBall; pongManager.OnScored += ResetBall; @@ -54,7 +54,7 @@ public class BallBehaviour : Behaviour2D if (rigidBody.Velocity.MagnitudeSquared <= 0.01f) return; - Vector2D speedUp = rigidBody.Velocity.Normalized * GameManager.Time.DeltaTime; + Vector2D speedUp = rigidBody.Velocity.Normalized * Universe.Time.DeltaTime; rigidBody.Velocity += speedUp * SpeedUpMultiplier; } diff --git a/Shared/Behaviours/CameraController.cs b/Shared/Behaviours/CameraController.cs index 53fae45..aa7f2f4 100644 --- a/Shared/Behaviours/CameraController.cs +++ b/Shared/Behaviours/CameraController.cs @@ -15,7 +15,7 @@ public class CameraController : Behaviour protected override void OnFirstActiveFrame() { cameraBehaviour ??= BehaviourController.GetRequiredBehaviour(); - buttonInputs = GameManager.FindRequiredBehaviour>(); + buttonInputs = Universe.FindRequiredBehaviour>(); buttonInputs.RegisterOnPress(Keys.F, SwitchToFullScreen); buttonInputs.RegisterOnPress(Keys.R, ResetCamera); @@ -24,21 +24,21 @@ public class CameraController : Behaviour protected override void OnUpdate() { if (buttonInputs.IsPressed(Keys.U)) - cameraBehaviour.Zoom += GameManager.Time.DeltaTime * 5f; + cameraBehaviour.Zoom += Universe.Time.DeltaTime * 5f; if (buttonInputs.IsPressed(Keys.J)) - cameraBehaviour.Zoom -= GameManager.Time.DeltaTime * 5f; + cameraBehaviour.Zoom -= Universe.Time.DeltaTime * 5f; - if (buttonInputs.IsPressed(Keys.NumPad8)) cameraBehaviour.Transform.LocalPosition += Vector2D.Up * GameManager.Time.DeltaTime * 500f; - if (buttonInputs.IsPressed(Keys.NumPad2)) cameraBehaviour.Transform.LocalPosition -= Vector2D.Up * GameManager.Time.DeltaTime * 500f; - if (buttonInputs.IsPressed(Keys.NumPad6)) cameraBehaviour.Transform.LocalPosition += Vector2D.Right * GameManager.Time.DeltaTime * 500f; - if (buttonInputs.IsPressed(Keys.NumPad4)) cameraBehaviour.Transform.LocalPosition -= Vector2D.Right * GameManager.Time.DeltaTime * 500f; + if (buttonInputs.IsPressed(Keys.NumPad8)) cameraBehaviour.Transform.LocalPosition += Vector2D.Up * Universe.Time.DeltaTime * 500f; + if (buttonInputs.IsPressed(Keys.NumPad2)) cameraBehaviour.Transform.LocalPosition -= Vector2D.Up * Universe.Time.DeltaTime * 500f; + if (buttonInputs.IsPressed(Keys.NumPad6)) cameraBehaviour.Transform.LocalPosition += Vector2D.Right * Universe.Time.DeltaTime * 500f; + if (buttonInputs.IsPressed(Keys.NumPad4)) cameraBehaviour.Transform.LocalPosition -= Vector2D.Right * Universe.Time.DeltaTime * 500f; if (buttonInputs.IsPressed(Keys.Q)) - cameraBehaviour.Transform.Rotation += GameManager.Time.DeltaTime * 45f; + cameraBehaviour.Transform.Rotation += Universe.Time.DeltaTime * 45f; if (buttonInputs.IsPressed(Keys.E)) - cameraBehaviour.Transform.Rotation -= GameManager.Time.DeltaTime * 45f; + cameraBehaviour.Transform.Rotation -= Universe.Time.DeltaTime * 45f; } private void SwitchToFullScreen(IButtonInputs inputs, Keys keys) diff --git a/Shared/Behaviours/MonoGameCamera2DBehaviour.cs b/Shared/Behaviours/MonoGameCamera2DBehaviour.cs index 9a7e13f..268acbe 100644 --- a/Shared/Behaviours/MonoGameCamera2DBehaviour.cs +++ b/Shared/Behaviours/MonoGameCamera2DBehaviour.cs @@ -28,7 +28,7 @@ public class MonoGameCamera2DBehaviour(GraphicsDeviceManager Graphics) : Behavio return; _matrixTransform = value; - OnMatrixTransformChanged?.Invoke(this); + OnMatrixTransformChanged?.InvokeSafe(this); } } @@ -47,7 +47,7 @@ public class MonoGameCamera2DBehaviour(GraphicsDeviceManager Graphics) : Behavio return; _viewport = value; - OnViewportChanged?.Invoke(this); + OnViewportChanged?.InvokeSafe(this); } } @@ -62,7 +62,7 @@ public class MonoGameCamera2DBehaviour(GraphicsDeviceManager Graphics) : Behavio return; _zoom = newValue; - OnZoomChanged?.Invoke(this); + OnZoomChanged?.InvokeSafe(this); } } diff --git a/Shared/Behaviours/MovementBallBehaviour.cs b/Shared/Behaviours/MovementBallBehaviour.cs index 2849ae0..3bb827e 100644 --- a/Shared/Behaviours/MovementBallBehaviour.cs +++ b/Shared/Behaviours/MovementBallBehaviour.cs @@ -27,7 +27,7 @@ public class MovementBallBehaviour : Behaviour2D if (rigidBody.Velocity.MagnitudeSquared <= 0.01f) return; - Vector2D speedUp = rigidBody.Velocity.Normalized * GameManager.Time.DeltaTime; + Vector2D speedUp = rigidBody.Velocity.Normalized * Universe.Time.DeltaTime; rigidBody.Velocity += speedUp * SpeedUpMultiplier; } diff --git a/Shared/Behaviours/PaddleBehaviour.cs b/Shared/Behaviours/PaddleBehaviour.cs index 82f2a31..8c759f9 100644 --- a/Shared/Behaviours/PaddleBehaviour.cs +++ b/Shared/Behaviours/PaddleBehaviour.cs @@ -26,16 +26,16 @@ public class PaddleBehaviour(Keys Up, Keys Down, float High, float Low, float Sp return; if (isUpPressed) - Transform.Position = Transform.Position + Vector2D.Up * GameManager.Time.DeltaTime * Speed; + Transform.Position = Transform.Position + Vector2D.Up * Universe.Time.DeltaTime * Speed; else if (isDownPressed) - Transform.Position = Transform.Position + -Vector2D.Up * GameManager.Time.DeltaTime * Speed; + Transform.Position = Transform.Position + -Vector2D.Up * Universe.Time.DeltaTime * Speed; Transform.Position = new Vector2D(Transform.Position.X, MathF.Max(MathF.Min(Transform.Position.Y, High), Low)); } protected override void OnFirstActiveFrame() { - inputs = GameManager.FindRequiredBehaviour>(); + inputs = Universe.FindRequiredBehaviour>(); inputs.RegisterOnPress(Up, OnUpPressed); inputs.RegisterOnRelease(Up, OnUpReleased); diff --git a/Shared/Behaviours/PongManagerBehaviour.cs b/Shared/Behaviours/PongManagerBehaviour.cs index d90d29c..65b5706 100644 --- a/Shared/Behaviours/PongManagerBehaviour.cs +++ b/Shared/Behaviours/PongManagerBehaviour.cs @@ -24,7 +24,7 @@ public class PongManagerBehaviour : Behaviour protected override void OnFirstActiveFrame() { - var buttonInputs = GameManager.FindRequiredBehaviour>(); + var buttonInputs = Universe.FindRequiredBehaviour>(); buttonInputs.RegisterOnRelease(Keys.Space, (_, _1) => Reset()); } @@ -32,7 +32,7 @@ public class PongManagerBehaviour : Behaviour public void ScoreToLeft() { ScoreLeft++; - OnScored?.Invoke(this); + OnScored?.InvokeSafe(this); CheckFinish(); } @@ -40,7 +40,7 @@ public class PongManagerBehaviour : Behaviour public void ScoreToRight() { ScoreRight++; - OnScored?.Invoke(this); + OnScored?.InvokeSafe(this); CheckFinish(); } @@ -48,7 +48,7 @@ public class PongManagerBehaviour : Behaviour public void Reset() { ScoreLeft = ScoreRight = 0; - OnReset?.Invoke(this); + OnReset?.InvokeSafe(this); } private void CheckFinish() @@ -56,6 +56,6 @@ public class PongManagerBehaviour : Behaviour int halfwayScore = (int)(WinScore * .5f); if (ScoreLeft > halfwayScore || ScoreRight > halfwayScore) - OnFinished?.Invoke(this); + OnFinished?.InvokeSafe(this); } } diff --git a/Shared/Behaviours/TextScoreBehaviour.cs b/Shared/Behaviours/TextScoreBehaviour.cs index f1de1d7..c986a0d 100644 --- a/Shared/Behaviours/TextScoreBehaviour.cs +++ b/Shared/Behaviours/TextScoreBehaviour.cs @@ -11,7 +11,7 @@ public class TextScoreBehaviour : TextBehaviour protected override void OnFirstActiveFrame() { - if (!HierarchyObject.GameManager.TryFindBehaviour(out pongManager)) + if (!UniverseObject.Universe.TryFindBehaviour(out pongManager)) return; pongManager.OnScored += UpdateScores; diff --git a/Shared/Behaviours/WallScoreBehaviour.cs b/Shared/Behaviours/WallScoreBehaviour.cs index 6482716..c1f8ca5 100644 --- a/Shared/Behaviours/WallScoreBehaviour.cs +++ b/Shared/Behaviours/WallScoreBehaviour.cs @@ -14,6 +14,6 @@ public class WallScoreBehaviour(Action OnCollision) : Behaviour2D if (!BehaviourController.TryGetBehaviour(out ICollider2D? collider2D)) return; - collider2D.OnCollisionDetected += (_, _1) => OnCollision?.Invoke(); + collider2D.OnCollisionDetected += (_, _1) => OnCollision?.InvokeSafe(); } } diff --git a/Shared/EngineConverter.cs b/Shared/EngineConverter.cs index fe904cc..2b0b4ce 100644 --- a/Shared/EngineConverter.cs +++ b/Shared/EngineConverter.cs @@ -9,7 +9,7 @@ public static class EngineConverter public readonly static Vector2D screenScale = Vector2D.Down + Vector2D.Right; [MethodImpl(MethodImplOptions.AggressiveInlining)] - public static EngineTime ToEngineTime(this GameTime gameTime) => new(gameTime.TotalGameTime, gameTime.ElapsedGameTime); + public static UniverseTime ToUniverseTime(this GameTime gameTime) => new(gameTime.TotalGameTime, gameTime.ElapsedGameTime); [MethodImpl(MethodImplOptions.AggressiveInlining)] public static Vector2D ToVector2D(this Vector2 vector) => new(vector.X, vector.Y); [MethodImpl(MethodImplOptions.AggressiveInlining)] diff --git a/Shared/GamePong.cs b/Shared/GamePong.cs index 52a0c03..ef6bfc9 100644 --- a/Shared/GamePong.cs +++ b/Shared/GamePong.cs @@ -14,21 +14,21 @@ namespace Pong; public class GamePong : Game { - private readonly IHierarchyObject platformSpecificHierarchyObject = null!; + private readonly IUniverseObject platformSpecificUniverseObject = null!; private readonly GraphicsDeviceManager graphics = null!; private SpriteBatch spriteBatch = null!; private ShapeBatch shapeBatch = null!; - private GameManager gameManager = null!; + private Universe universe = null!; private BehaviourCollector displayableCollector = null!; private BehaviourCollector displayableShapeCollector = null!; private MonoGameCamera2DBehaviour cameraBehaviour = null!; private PongManagerBehaviour pongManager = null!; - public GamePong(IHierarchyObject platformSpecificHierarchyObject) + public GamePong(IUniverseObject platformSpecificUniverseObject) { - this.platformSpecificHierarchyObject = platformSpecificHierarchyObject; + this.platformSpecificUniverseObject = platformSpecificUniverseObject; graphics = new GraphicsDeviceManager(this) { PreferredBackBufferWidth = 1024, @@ -43,11 +43,11 @@ public class GamePong : Game protected override void Initialize() { // TODO: Add your initialization logic here - gameManager = new(); - displayableCollector = new(gameManager); - displayableShapeCollector = new(gameManager); + universe = new(); + displayableCollector = new(universe); + displayableShapeCollector = new(universe); - gameManager.Initialize(); + universe.Initialize(); base.Initialize(); } @@ -58,79 +58,79 @@ public class GamePong : Game shapeBatch = new ShapeBatch(GraphicsDevice, Content); SpriteFont spriteFont = Content.Load("UbuntuMono"); - gameManager.Register(platformSpecificHierarchyObject); - gameManager.InstantiateHierarchyObject().SetHierarchyObject("Physics Engine 2D"); + universe.Register(platformSpecificUniverseObject); + universe.InstantiateUniverseObject().SetUniverseObject("Physics Engine 2D"); //////////////////////////////////////////////////////////////////////////////////// - IHierarchyObject HierarchyObjectCamera = gameManager.InstantiateHierarchyObject().SetHierarchyObject("Camera"); ; - HierarchyObjectCamera.BehaviourController.AddBehaviour(); + IUniverseObject UniverseObjectCamera = universe.InstantiateUniverseObject().SetUniverseObject("Camera"); ; + UniverseObjectCamera.BehaviourController.AddBehaviour(); - HierarchyObjectCamera.BehaviourController.AddBehaviour(); - cameraBehaviour = HierarchyObjectCamera.BehaviourController.AddBehaviour(graphics); + UniverseObjectCamera.BehaviourController.AddBehaviour(); + cameraBehaviour = UniverseObjectCamera.BehaviourController.AddBehaviour(graphics); //////////////////////////////////////////////////////////////////////////////////// - IHierarchyObject HierarchyObjectPongManager = gameManager.InstantiateHierarchyObject().SetHierarchyObject("Pong Game Manager"); - pongManager = HierarchyObjectPongManager.BehaviourController.AddBehaviour(5); + IUniverseObject UniverseObjectPongManager = universe.InstantiateUniverseObject().SetUniverseObject("Pong Game Manager"); + pongManager = UniverseObjectPongManager.BehaviourController.AddBehaviour(5); //////////////////////////////////////////////////////////////////////////////////// - IHierarchyObject HierarchyObjectBall = gameManager.InstantiateHierarchyObject().SetHierarchyObject("Ball"); - HierarchyObjectBall.BehaviourController.AddBehaviour().SetTransform(position: new Vector2D(0, 0f), scale: new Vector2D(10f, 10f)); + IUniverseObject UniverseObjectBall = universe.InstantiateUniverseObject().SetUniverseObject("Ball"); + UniverseObjectBall.BehaviourController.AddBehaviour().SetTransform(position: new Vector2D(0, 0f), scale: new Vector2D(10f, 10f)); - HierarchyObjectBall.BehaviourController.AddBehaviour(new Circle(Vector2D.Zero, 1f)); - HierarchyObjectBall.BehaviourController.AddBehaviour(); - HierarchyObjectBall.BehaviourController.AddBehaviour(); + UniverseObjectBall.BehaviourController.AddBehaviour(new Circle(Vector2D.Zero, 1f)); + UniverseObjectBall.BehaviourController.AddBehaviour(); + UniverseObjectBall.BehaviourController.AddBehaviour(); //////////////////////////////////////////////////////////////////////////////////// - IHierarchyObject HierarchyObjectLeftPaddle = gameManager.InstantiateHierarchyObject().SetHierarchyObject("Left Paddle"); - HierarchyObjectLeftPaddle.BehaviourController.AddBehaviour().SetTransform(position: new Vector2D(-468f, 0f), scale: new Vector2D(15f, 60f)); + IUniverseObject UniverseObjectLeftPaddle = universe.InstantiateUniverseObject().SetUniverseObject("Left Paddle"); + UniverseObjectLeftPaddle.BehaviourController.AddBehaviour().SetTransform(position: new Vector2D(-468f, 0f), scale: new Vector2D(15f, 60f)); - HierarchyObjectLeftPaddle.BehaviourController.AddBehaviour(Keys.W, Keys.S, 228f, -228f, 400f); - HierarchyObjectLeftPaddle.BehaviourController.AddBehaviour(Shape2D.Square); - HierarchyObjectLeftPaddle.BehaviourController.AddBehaviour().IsStatic = true; + UniverseObjectLeftPaddle.BehaviourController.AddBehaviour(Keys.W, Keys.S, 228f, -228f, 400f); + UniverseObjectLeftPaddle.BehaviourController.AddBehaviour(Shape2D.Square); + UniverseObjectLeftPaddle.BehaviourController.AddBehaviour().IsStatic = true; - IHierarchyObject HierarchyObjectRightPaddle = gameManager.InstantiateHierarchyObject().SetHierarchyObject("Right Paddle"); - HierarchyObjectRightPaddle.BehaviourController.AddBehaviour().SetTransform(position: new Vector2D(468f, 0f), scale: new Vector2D(15f, 60f)); - HierarchyObjectRightPaddle.BehaviourController.AddBehaviour(Keys.Up, Keys.Down, 228f, -228f, 400f); - HierarchyObjectRightPaddle.BehaviourController.AddBehaviour(Shape2D.Square); - HierarchyObjectRightPaddle.BehaviourController.AddBehaviour().IsStatic = true; + IUniverseObject UniverseObjectRightPaddle = universe.InstantiateUniverseObject().SetUniverseObject("Right Paddle"); + UniverseObjectRightPaddle.BehaviourController.AddBehaviour().SetTransform(position: new Vector2D(468f, 0f), scale: new Vector2D(15f, 60f)); + UniverseObjectRightPaddle.BehaviourController.AddBehaviour(Keys.Up, Keys.Down, 228f, -228f, 400f); + UniverseObjectRightPaddle.BehaviourController.AddBehaviour(Shape2D.Square); + UniverseObjectRightPaddle.BehaviourController.AddBehaviour().IsStatic = true; //////////////////////////////////////////////////////////////////////////////////// - IHierarchyObject HierarchyObjectWallTop = gameManager.InstantiateHierarchyObject().SetHierarchyObject("Wall Top"); - HierarchyObjectWallTop.BehaviourController.AddBehaviour().SetTransform(position: new Vector2D(0f, 308f), scale: new Vector2D(552f, 20f)); - HierarchyObjectWallTop.BehaviourController.AddBehaviour(Shape2D.Square); - HierarchyObjectWallTop.BehaviourController.AddBehaviour().IsStatic = true; + IUniverseObject UniverseObjectWallTop = universe.InstantiateUniverseObject().SetUniverseObject("Wall Top"); + UniverseObjectWallTop.BehaviourController.AddBehaviour().SetTransform(position: new Vector2D(0f, 308f), scale: new Vector2D(552f, 20f)); + UniverseObjectWallTop.BehaviourController.AddBehaviour(Shape2D.Square); + UniverseObjectWallTop.BehaviourController.AddBehaviour().IsStatic = true; - IHierarchyObject HierarchyObjectWallBottom = gameManager.InstantiateHierarchyObject().SetHierarchyObject("Wall Bottom"); - HierarchyObjectWallBottom.BehaviourController.AddBehaviour().SetTransform(position: new Vector2D(0f, -308f), scale: new Vector2D(552f, 20f)); - HierarchyObjectWallBottom.BehaviourController.AddBehaviour(Shape2D.Square); - HierarchyObjectWallBottom.BehaviourController.AddBehaviour().IsStatic = true; + IUniverseObject UniverseObjectWallBottom = universe.InstantiateUniverseObject().SetUniverseObject("Wall Bottom"); + UniverseObjectWallBottom.BehaviourController.AddBehaviour().SetTransform(position: new Vector2D(0f, -308f), scale: new Vector2D(552f, 20f)); + UniverseObjectWallBottom.BehaviourController.AddBehaviour(Shape2D.Square); + UniverseObjectWallBottom.BehaviourController.AddBehaviour().IsStatic = true; - IHierarchyObject HierarchyObjectWallRight = gameManager.InstantiateHierarchyObject().SetHierarchyObject("Wall Right"); - HierarchyObjectWallRight.BehaviourController.AddBehaviour().SetTransform(position: new Vector2D(532f, 0f), scale: new Vector2D(20f, 328f)); - HierarchyObjectWallRight.BehaviourController.AddBehaviour((Action)pongManager.ScoreToLeft); - HierarchyObjectWallRight.BehaviourController.AddBehaviour(Shape2D.Square); - HierarchyObjectWallRight.BehaviourController.AddBehaviour().IsStatic = true; + IUniverseObject UniverseObjectWallRight = universe.InstantiateUniverseObject().SetUniverseObject("Wall Right"); + UniverseObjectWallRight.BehaviourController.AddBehaviour().SetTransform(position: new Vector2D(532f, 0f), scale: new Vector2D(20f, 328f)); + UniverseObjectWallRight.BehaviourController.AddBehaviour((Action)pongManager.ScoreToLeft); + UniverseObjectWallRight.BehaviourController.AddBehaviour(Shape2D.Square); + UniverseObjectWallRight.BehaviourController.AddBehaviour().IsStatic = true; - IHierarchyObject HierarchyObjectWallLeft = gameManager.InstantiateHierarchyObject().SetHierarchyObject("Wall Left"); - HierarchyObjectWallLeft.BehaviourController.AddBehaviour().SetTransform(position: new Vector2D(-532f, 0f), scale: new Vector2D(20f, 328f)); - HierarchyObjectWallLeft.BehaviourController.AddBehaviour((Action)pongManager.ScoreToRight); - HierarchyObjectWallLeft.BehaviourController.AddBehaviour(Shape2D.Square); - HierarchyObjectWallLeft.BehaviourController.AddBehaviour().IsStatic = true; + IUniverseObject UniverseObjectWallLeft = universe.InstantiateUniverseObject().SetUniverseObject("Wall Left"); + UniverseObjectWallLeft.BehaviourController.AddBehaviour().SetTransform(position: new Vector2D(-532f, 0f), scale: new Vector2D(20f, 328f)); + UniverseObjectWallLeft.BehaviourController.AddBehaviour((Action)pongManager.ScoreToRight); + UniverseObjectWallLeft.BehaviourController.AddBehaviour(Shape2D.Square); + UniverseObjectWallLeft.BehaviourController.AddBehaviour().IsStatic = true; //////////////////////////////////////////////////////////////////////////////////// - IHierarchyObject HierarchyObjectLeftScoreText = gameManager.InstantiateHierarchyObject().SetHierarchyObject("Score Left"); - HierarchyObjectLeftScoreText.BehaviourController.AddBehaviour().SetTransform(position: new Vector2D(-250f, 250f), scale: Vector2D.One * .25f); - HierarchyObjectLeftScoreText.BehaviourController.AddBehaviour(true, spriteFont); + IUniverseObject UniverseObjectLeftScoreText = universe.InstantiateUniverseObject().SetUniverseObject("Score Left"); + UniverseObjectLeftScoreText.BehaviourController.AddBehaviour().SetTransform(position: new Vector2D(-250f, 250f), scale: Vector2D.One * .25f); + UniverseObjectLeftScoreText.BehaviourController.AddBehaviour(true, spriteFont); - IHierarchyObject HierarchyObjectRightScoreText = gameManager.InstantiateHierarchyObject().SetHierarchyObject("Score Right"); - HierarchyObjectRightScoreText.BehaviourController.AddBehaviour().SetTransform(position: new Vector2D(250f, 250f), scale: Vector2D.One * .25f); - HierarchyObjectRightScoreText.BehaviourController.AddBehaviour(false, spriteFont); + IUniverseObject UniverseObjectRightScoreText = universe.InstantiateUniverseObject().SetUniverseObject("Score Right"); + UniverseObjectRightScoreText.BehaviourController.AddBehaviour().SetTransform(position: new Vector2D(250f, 250f), scale: Vector2D.One * .25f); + UniverseObjectRightScoreText.BehaviourController.AddBehaviour(false, spriteFont); } protected override void Update(GameTime gameTime) @@ -138,7 +138,7 @@ public class GamePong : Game if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape)) Exit(); - gameManager.Update(gameTime.ToEngineTime()); + universe.Update(gameTime.ToUniverseTime()); base.Update(gameTime); } @@ -148,7 +148,7 @@ public class GamePong : Game GraphicsDevice.Clear(new Color() { R = 32, G = 32, B = 32 }); // TODO: Add your drawing code here - gameManager.PreDraw(); + universe.PreDraw(); spriteBatch.Begin(SpriteSortMode.Deferred, transformMatrix: cameraBehaviour.MatrixTransform); foreach (var displayable in displayableCollector)