public float GetSquareRadius(CollisionTarget target) { return MathUtil.Pow2(Radius + target.Radius); }
static bool GetSingleMultiCollision(CollisionTarget single, CircleCollisionSystem multi) { return multi.Collisions.Any(i => multi.IsCollision(i.GetCollisionTarget(), single)); }
public Vector2 GetDistanceVector(CollisionTarget target) { return Position - target.Position; }
/// <summary> /// 円と円との判定部分 /// </summary> /// <param name="t1"></param> /// <param name="t2"></param> /// <returns></returns> protected virtual bool IsCollision(CollisionTarget t1, CollisionTarget t2) { return t1.GetDistanceVector(t2).LengthSquared() < t1.GetSquareRadius(t2); }