コード例 #1
0
        public bool CircleInRect(GameStructure.Circle circle, GameStructure.Rectangle rectangle)
        {
            GameStructure.Point lefmost    = new GameStructure.Point(circle.PositionX - circle.Radius, circle.PositionY);
            GameStructure.Point rightmost  = new GameStructure.Point(circle.PositionX + circle.Radius, circle.PositionY);
            GameStructure.Point topmost    = new GameStructure.Point(circle.PositionX, circle.PositionY - circle.Radius);
            GameStructure.Point bottommost = new GameStructure.Point(circle.PositionX, circle.PositionY + circle.Radius);

            List <GameStructure.Point> cornerPoints = new List <GameStructure.Point>();

            cornerPoints.Add(lefmost);
            cornerPoints.Add(rightmost);
            cornerPoints.Add(topmost);
            cornerPoints.Add(bottommost);

            foreach (GameStructure.Point point in cornerPoints)
            {
                if (PointInRectangular(point, rectangle))
                {
                    return(true);
                }
            }

            return(false);
        }
コード例 #2
0
 private bool BallInPlayerBar(Player player)
 {
     GameStructure.Circle    circle    = new GameStructure.Circle(GameStructure.Ball.PositionX, GameStructure.Ball.PositionY, GameStructure.Ball.Radius);
     GameStructure.Rectangle rectangle = new GameStructure.Rectangle(player.PositionX, player.PositionY, player.Height, player.Width);
     return(CollisionDetector.CircleInRect(circle, rectangle));
 }