public void VerifyBallShouldBounceFromBorders() { var borders = CreateBorders(); ball.Boundary.Min = new Vector2(Width - BorderSize - (BallSize - 1), Height - BorderSize - (BallSize - 1)); collisionState.SetBorderCollistionState(true, true, borders); ICollisionCommand command = new BorderCollisionCommand(borders, manager, collisionState); command.Detect(ball); command.Bounce(ball); Assert.AreEqual(2, collisionState.BordersHitList.Count); Assert.IsTrue(collisionState.CollisionWithBorder); Assert.IsTrue(collisionState.BounceFromBorder); }
private void DetectBorderCollision(IBall ball) { var bordersHitList = new List <IBorder>(); foreach (IBorder border in borders) { var borderCollisionManager = new BorderCollisionManager(collisionManager); if (borderCollisionManager.Detect(border, ball)) { bordersHitList.Add(border); } } if (bordersHitList.Count > 0) { collisionState.SetBorderCollistionState(true, true, bordersHitList); } }