我正在使用 Chipmunk 物理学并希望进行碰撞检测以找出 2 个 cpBodies 何时发生碰撞。我有一些问题;
- 你能给我一个使用cpCollPairFunc或 cpSpaceAddCollisionHandler 的例子吗?
- 我在矩形交叉点周围看到过;多边形有可能吗?
- 我应该在上面使用另一个库(SpaceManager 或其他)吗?
谢谢!
F。
我正在使用 Chipmunk 物理学并希望进行碰撞检测以找出 2 个 cpBodies 何时发生碰撞。我有一些问题;
谢谢!
F。
您需要添加以下行
形状->collision_type = kCollisionTypeParticle;
cpSpaceAddCollisionHandler(space_, kCollisionTypeParticle, kCollisionTypeParticle, collisonDetect, NULL, NULL, NULL, self);
kCollisionTypeParticle 是枚举,如果有两种不同的粒子,可以定义它。
typedef enum {
kCollisionTypeParticle,
kCollisionTypeParticleNew
} CollisionType;
这里 collisonDetect 是我们需要注册的一个方法:
cpBool collisonDetect(cpArbiter *arb, struct cpSpace *space, void *data) {
*layer = ( *)data;
[层碰撞检测:arb];
返回cpTrue;
}
现在在这里你将处理其余的代码
-(void)collisonDetect:(cpArbiter*)arb {
NSLog(@"检测到碰撞");
}
乔感谢您的回复;Corona 不是免费软件,不是吗。
最后的救星是: http: //www.cocos2d-iphone.org/forum/topic/9425和cpSpaceAddCollisionHandler方法。