Ejemplo n.º 1
0
        /// <summary>
        /// 半円と矩形が交差、又はそれぞれ内包していたらtrue
        /// </summary>
        /// <param name="circle"></param>
        /// <param name="rect"></param>
        /// <returns></returns>
        public static bool Overlaps(ShapeHalfCircle halfCircle, Rect rect)
        {
            switch (halfCircle.Direction)
            {
            case ShapeHalfCircle.DIRECTION.UPWARD:
                if (halfCircle.Position.y > rect.position.y + rect.height * 0.5f)
                {
                    // 上向き半円の中心点が、Rectの上端より上なら当たってない
                    return(false);
                }
                break;

            case ShapeHalfCircle.DIRECTION.DOWNWARD:
                if (halfCircle.Position.y < rect.position.y - rect.height * 0.5f)
                {
                    // 下向き半円の中心点が、Rectの下端より下なら当たってない
                    return(false);
                }
                break;

            default:
                break;
            }
            Vector2[] verts = CalcRectVertexs(rect.width, rect.height, rect.position.x, rect.position.y);
            return(Overlaps(halfCircle, verts));
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 形状同士がぶつかっていればtrue
 /// </summary>
 /// <param name="halfCircle1"></param>
 /// <param name="rect"></param>
 /// <returns></returns>
 public static bool Overlaps(ShapeUnityRect rect, ShapeHalfCircle halfCircle1)
 {
     return(Overlaps(halfCircle1, rect.Rect));
 }
Ejemplo n.º 3
0
 /// <summary>
 /// 形状同士がぶつかっていればtrue
 /// </summary>
 /// <param name="halfCircle1"></param>
 /// <param name="halfCircle2"></param>
 /// <returns></returns>
 public static bool Overlaps(ShapeHalfCircle halfCircle1, ShapeHalfCircle halfCircle2)
 {
     return(halfCircle1.Overlaps(halfCircle2));
 }
Ejemplo n.º 4
0
 /// <summary>
 /// 形状同士がぶつかっていればtrue
 /// </summary>
 /// <param name="halfCircle"></param>
 /// <param name="circle"></param>
 /// <returns></returns>
 public static bool Overlaps(ShapeCircle circle, ShapeHalfCircle halfCircle)
 {
     return(halfCircle.Overlaps(circle));
 }