Я использую следующий код, чтобы получить расстояние между двумя круглыми телами разного радиуса:В box2d для iOS, как найти расстояние между двумя круговыми телами?
distance = b2Distance(body1->GetPosition(), body2->GetPosition());
Я понял, что переменное расстояние хранит расстояние между двумя центрами тел, но не расстояние между границы. Я хочу, чтобы расстояние = 0, когда оба тела касаются друг друга.
Как я могу это сделать? Я пытался этот код, но он не:
b2DistanceInput *distanceInput;
distanceInput->transformA = body1->GetTransform();
distanceInput->transformB = body2->GetTransform();
b2DistanceProxy *proxyA;
proxyA->Set(fixtureBody1->GetShape(), 1);
b2DistanceProxy *proxyB;
proxyB->Set(fixtureBody2->GetShape(), 1);
distanceInput->proxyA = *proxyA;
distanceInput->proxyB = *proxyB;
b2DistanceOutput *theDistance;
b2SimplexCache *cache;
cache->count = 0;
b2Distance(theDistance, cache, distanceInput);
Метод getShape дает плохую ошибку доступа в коде b2box.
Любые идеи?
Спасибо,
Г.А.
Ваш код работал отлично. На самом деле проблема была в распределении памяти. Поскольку я не вызывал новый b2DistanceInput() и другие конструкторы. –