0

我正在使用 Chipmunk 物理学并希望进行碰撞检测以找出 2 个 cpBodies 何时发生碰撞。我有一些问题;

  • 你能给我一个使用cpCollPairFunc或 cpSpaceAddCollisionHandler 的例子吗?
  • 我在矩形交叉点周围看到过;多边形有可能吗?
  • 我应该在上面使用另一个库(SpaceManager 或其他)吗?

谢谢!

F。

4

2 回答 2

0

您需要添加以下行

形状->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(@"检测到碰撞");

}

于 2012-12-11T11:48:03.727 回答
-1

乔感谢您的回复;Corona 不是免费软件,不是吗。

最后的救星是: http: //www.cocos2d-iphone.org/forum/topic/9425cpSpaceAddCollisionHandler方法。

于 2011-05-01T10:52:13.123 回答