用于Cocos2D的花栗鼠,碰撞检测 - 最佳实践?

时间:2011-04-30 11:30:27

标签: iphone ipad cocos2d-iphone collision-detection chipmunk

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

  • 你能给我一个使用cpCollPairFunc或cpSpaceAddCollisionHandler的例子吗?
  • 我在长方形的十字路口看到过;多边形可能吗?
  • 我应该在顶部使用另一个库(SpaceManager或其他)吗?

谢谢!

F。

2 个答案:

答案 0 :(得分:0)

您需要添加以下行

  

shape-> 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;
  [layer collisonDetect:arb];
  return cpTrue;
  }

现在,您将在这里处理其余代码

  

- (无效)collisonDetect:(cpArbiter *)ARB   {

     NSLog(@“碰撞检测”);

  }

答案 1 :(得分:-1)

乔,谢谢你的回应;电晕不是免费软件不是吗。

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