1
我使用下面的代碼來獲得不同半徑的兩個圓形物體之間的距離:在iOS的box2d中,如何找到兩個圓形物體之間的距離?
distance = b2Distance(body1->GetPosition(), body2->GetPosition());
我已經意識到,可變距離存儲體的兩個中心之間的距離,而不是之間的距離邊界。當兩個物體接觸時,我想要的是distance = 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代碼中給出了錯誤的訪問錯誤。
任何想法?
感謝,
GA
您的代碼工作的罰款。這個問題實際上是內存分配。因爲我沒有調用新的b2DistanceInput()和其他構造函數。 –