이 나는 장면 곳에 일부가, 내가 여기에 문제가 ... 내 HelloWorldLayer.mm이 코드를 사용할 수있는 방법우리 응용 프로그램에서 void ContactListener :: PreSolve (b2Contact * contact, const b2Manifold * oldManifold) 메서드를 어떻게 사용할 수 있습니까?
void MyContactListener::PreSolve(b2Contact* contact, const b2Manifold* oldManifold) {
b2WorldManifold worldManifold;
contact->GetWorldManifold(&worldManifold);
b2PointState state1[2], state2[2];
b2GetPointStates(state1, state2, oldManifold, contact->GetManifold());
//NSLog(@"Presolving");
if (state2[0] == b2_addState)
{
const b2Body* bodyA = contact->GetFixtureA()->GetBody();
const b2Body* bodyB = contact->GetFixtureB()->GetBody();
b2Vec2 point = worldManifold.points[0];
b2Vec2 vA = bodyA->GetLinearVelocityFromWorldPoint(point);
b2Vec2 vB = bodyB->GetLinearVelocityFromWorldPoint(point);
b2Vec2 rV = vB - vA;
float32 approachVelocity = b2Dot(rV, worldManifold.normal);
if (-1.5f < approachVelocity && approachVelocity < 0.0f)
{
//MyPlayCollisionSound();
NSLog(@"Not Playing Sound");
}
else
{
NSLog(@"playing the sound");
}
}
}
저를 도와주세요 내 응용 프로그램이 metnod를 사용하는 방법을 잘 모릅니다 바디가 떨어지고 정적 바디, 에지 모두 비슷하게 충돌합니다. b2ContactListener를 구현하고 연락처 정보를 확인하고 소리를 재생하는 틱 메소드 Im에서이 방법의 문제점은 바디가 정적 바디와 지속적으로 접촉 할 때 소리가 무한정 반복되어 소리가 울려 퍼지기 때문에 결국 나는 커다란 잡음이 난다. 이 상황을 피하려면 어떻게해야합니까?
나에게 도와주세요 감사합니다 ......
두 물체가 충돌 할 때,b2ContactListener
방법은 다음과 같은 순서로 호출됩니다
좋아요. 시도 할 것입니다 ... –