我不知道如何在我的应用程序中使用这个metnod
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");
}
}
}
如何在我的 HelloWorldLayer.mm 中使用此代码请帮助我...我这里有一个问题,我有一个场景,其中一些物体掉落并撞击静态物体,边缘相似,我实现了 b2ContactListener,并在我的刻度方法中我正在检查接触并播放声音,这种方法的问题是,当一个身体不断与静态身体接触时,声音会无限期地覆盖前一个,所以最后我有很大的噪音..我能做什么怎样避免这种情况?
请帮帮我谢谢......