コード例 #1
0
        public void FRect_CollidedSidesNoTouch()
        {
            FRect A = new FRect(0, 0, 5, 5);
            FRect B = new FRect(-4, 0, 5, 5);
            FRect C = new FRect(-2, -2, 6, 8);
            FRect D = new FRect(-20, -20, 1, 1);
            FRect E = new FRect(1, 1, 3, 3);

            Collision.RectSide side = Collision.CollidedSidesNoTouch(A, A);
            Debug.Assert(side.IsSet(Collision.RectSide.Equal), "1");

            side = Collision.CollidedSidesNoTouch(B, A);
            Debug.Assert(side.IsSet(Collision.RectSide.Left), "2");

            side = Collision.CollidedSidesNoTouch(C, A);
            Debug.Assert(side.IsSet(Collision.RectSide.Left) &&
                         side.IsSet(Collision.RectSide.Top) &&
                         side.IsSet(Collision.RectSide.Bottom),
                         "3");

            side = Collision.CollidedSidesNoTouch(D, A);
            Debug.Assert(side.IsSet(Collision.RectSide.None), "4");

            side = Collision.CollidedSidesNoTouch(E, A);
            Debug.Assert(side.IsSet(Collision.RectSide.Inside), "5");
        }