public void CreatePaddleTest2() { Paddle p = PaddleFactory.CreatePaddle(PongRoyale_shared.PaddleType.Short, 10); Type t = typeof(ShortPaddle); Assert.IsTrue(p.Id == 10 && p.GetType().Equals(t)); }
public void InitLogic(Dictionary <byte, NetworkPlayer> players) { PlayerCount = players.Count; Mediator = MainForm.Instance.Mediator; DoAfterGameLoop = new List <Action>(); PlayerPaddles = new Dictionary <byte, Paddle>(); ArenaBalls = new Dictionary <byte, IBall>(); ArenaObjects = new Dictionary <byte, ArenaObject>(); float deltaAngle = SharedUtilities.PI * 2 / PlayerCount; float angle = (-SharedUtilities.PI + deltaAngle) / 2f; foreach (var player in players.Values) { PaddleType pType = player.PaddleType; Paddle paddle = PaddleFactory.CreatePaddle(pType, player.Id); paddle.SetPosition(SharedUtilities.RadToDeg(angle)); PlayerPaddles.Add(player.Id, paddle); player.SetLife(paddle.Life); if (Mediator.GetBool("IdMatches", player.Id)) { LocalPaddle = paddle; } paddle.AddClampAngles(SharedUtilities.RadToDeg(angle - deltaAngle / 2), SharedUtilities.RadToDeg(angle + deltaAngle / 2)); angle += deltaAngle; } AlivePaddleCount = PlayerPaddles.Count; StartingAlivePaddleCount = AlivePaddleCount; UpdatableRoot = new UpdateComposite(); UpdatableRoot.Add(LocalPaddle.Id, LocalPaddle); UpdateComponent spawnerBranch = new UpdateComposite(); spawnerBranch.Add(spawnerBranch.GetNextId(), new ObstacleSpawner(GameData.ObstacleSpawnerParams, ArenaObjectFactories.Values.ToArray())); spawnerBranch.Add(spawnerBranch.GetNextId(), new PowerUpSpawner(GameData.PowerUpSpawnerParams, ArenaObjectFactories.Values.ToArray())); UpdatableRoot.Add(UpdatableRoot.GetNextId(), spawnerBranch); UpdateComponent objectBranch = new UpdateComposite(); ObjectBranchId = UpdatableRoot.GetNextId(); UpdatableRoot.Add(ObjectBranchId, objectBranch); UpdateComponent ballBranch = new UpdateComposite(); BallBranchId = UpdatableRoot.GetNextId(); UpdatableRoot.Add(BallBranchId, ballBranch); BallType bType = RoomSettings.Instance.BallType; Ball ball = Ball.CreateBall(0, bType, ArenaDimensions.Center, GameData.DefaultBallSpeed, Vector2.RandomInUnitCircle(), GameData.DefaultBallSize); ArenaBalls.Add(0, ball); ballBranch.Add(0, ball); IsInitted = true; PauseGame(false); }
// Clear old actors and create new ones based on the settings private void CreateActors() { _actorRegistry.Clear(); PaddleBase leftPaddle = _paddleFactory.CreatePaddle(_settingsManager.Settings.Gameplay.LeftPaddleType, PaddleSide.Left); PaddleBase rightPaddle = _paddleFactory.CreatePaddle(_settingsManager.Settings.Gameplay.RightPaddleType, PaddleSide.Right); _actorRegistry.AddRange(leftPaddle, rightPaddle); IActor[] balls = new IActor[_settingsManager.Settings.Gameplay.BallCount]; for (int i = 0; i < balls.Length; i++) { balls[i] = _ballFactory.CreateBall(); } _actorRegistry.AddRange(balls); }
public void OnCollisionTest() { Vector2 startingDir = new Vector2(1, 1); Paddle paddle = PaddleFactory.CreatePaddle(PaddleType.Normal, (byte)0); Ball testBall = Ball.CreateBall(0, BallType.Normal, new Vector2(225.5 + 200.5, 225.5), GameData.DefaultBallSpeed, startingDir, GameData.DefaultBallSize); testBall.OnCollision(paddle, null); Vector2 dirAfterCollision = testBall.Direction; Assert.AreNotEqual(startingDir, dirAfterCollision); }
public void CheckCollisionWithPaddlesTest() { Vector2 startingDir = new Vector2(1, 1); Paddle paddle = PaddleFactory.CreatePaddle(PaddleType.Normal, (byte)0); paddle.SetPosition(-5); Ball testBall = Ball.CreateBall(0, BallType.Normal, new Vector2(225.5 + 200.5, 225.5), GameData.DefaultBallSpeed, startingDir, GameData.DefaultBallSize); Dictionary <byte, Paddle> paddleDict = new Dictionary <byte, Paddle>(); paddleDict.Add(paddle.Id, paddle); testBall.CheckCollisionWithPaddles(paddleDict); Vector2 dirAfterCollision = testBall.Direction; Assert.AreNotEqual(startingDir, dirAfterCollision); }
public void CheckOutOfBoundsTest() { Paddle paddle = PaddleFactory.CreatePaddle(PaddleType.Normal, (byte)0); Paddle paddle2 = PaddleFactory.CreatePaddle(PaddleType.Short, (byte)1); Paddle paddle3 = PaddleFactory.CreatePaddle(PaddleType.Long, (byte)2); paddle.SetPosition(-5); paddle2.SetPosition(-10); Ball testBall = Ball.CreateBall(0, BallType.Normal, new Vector2(225.5 + 200.5, 225.5), GameData.DefaultBallSpeed, Vector2.RandomInUnitCircle(), GameData.DefaultBallSize); Dictionary <byte, Paddle> paddleDict = new Dictionary <byte, Paddle>(); paddleDict.Add(paddle.Id, paddle); paddleDict.Add(paddle2.Id, paddle2); paddleDict.Add(paddle3.Id, paddle3); bool isOutOfBounds = testBall.CheckOutOfBounds(0, paddleDict, out byte paddleId); Assert.IsTrue(isOutOfBounds); }
private static void DoWithFlyweight(int n) { Stopwatch sw = new Stopwatch(); long before, after; sw.Reset(); before = GC.GetTotalMemory(false); sw.Start(); for (int i = 0; i < n; i++) { var type = (PaddleType)(i % 4); PaddleFactory.CreatePaddle(type, 0); } sw.Stop(); after = GC.GetTotalMemory(false); long usedWith = after - before; long msWith = sw.ElapsedMilliseconds; Debug.WriteLine($"{n}: With Flyweight: {msWith} milliseconds. {usedWith} bytes"); }
public Player(RenderWindow rw) { this._points = 0; this._paddle = PaddleFactory.CreatePaddle(rw, PaddleTypes.Player); }
public Enemy(RenderWindow rw) { this._points = 0; this._paddle = PaddleFactory.CreatePaddle(rw, PaddleTypes.Enemy); }