Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            }
        }