我通常使用 box2d 来检测两个精灵之间的碰撞,如下面的代码
- (void)beginContact:(b2Contact *)contact {
b2Fixture *fixtureA = contact->GetFixtureA();
b2Fixture *fixtureB = contact->GetFixtureB();
b2Fixture *fixtureC = contact->GetFixtureA();
b2Body *bodyA = fixtureA->GetBody();
b2Body *bodyB = fixtureB->GetBody();
b2Body *bodyC = fixtureC->GetBody();
CCSprite *spriteA = (CCSprite *) bodyA->GetUserData();
CCSprite *spriteB = (CCSprite *) bodyB->GetUserData()
LHBezierNode* bez = (LHBezierNode *) bodyC->GetUserData();
if ((spriteB == _enemy && spriteB == _hero) ||
(spriteA == _enemy && spriteA == _hero)) {
NSLog(@"enemy touched");
}
}
但我很困惑如何检测 bazier 和 sprite 之间的碰撞检测。感谢任何帮助。谢谢
这是我的贝塞尔曲线
LHBezierNode* myBezier = [LH bezierNodeWithUniqueName:@"BezierName"];
注意:我使用贝塞尔的水平助手。