예제 #1
0
	bool Collider::CollideCircleCircle(CircleCollider* a, CircleCollider* b, CollisionData *collisionData)
	{
		Vector2 diff = a->GetCenter() - b->GetCenter();
		if (diff.IsInRange(a->GetRadius() + b->GetRadius()))
		{
			if (collisionData)
			{
				collisionData->normal = diff.GetNormalized();
				collisionData->penetration = (a->GetRadius() + b->GetRadius()) - diff.GetMagnitude();
				collisionData->hitPoint = diff * 0.5f + b->GetCenter();
			}
			return true;
		}
		return false;
	}