如何在box2d cocos2d中将对象附加到旋转圆?

时间:2012-06-26 11:07:28

标签: cocos2d-iphone box2d

我试图让一个物体附着在一个正在旋转的圆圈的碰撞点上,但玩家需要在玩家身上附加一个恒定点。例如,玩家来回移动,当用户触摸屏幕并且玩家跳起来但我需要的是,当玩家与圆圈碰撞时,它将它的腿连接到它并继续随圆圈旋转。所以我想知道如何在cocos2d box2d中进行这种碰撞?

1 个答案:

答案 0 :(得分:0)

当检测到用户与圆圈之间的冲突时,您可以运行调用回调函数(可能是CCCallFuncND)的操作。回调函数可以传递给两个实体的指针(包装在NSValue valueWithPointer中)并在它们之间创建任意关节。这可以通过首先实例化所需类型的b2JointDef来完成,将该关节的bodyA和bodyB定义为你想要“粘在一起”的两个实体,然后调用b2World-> CreateJoint()。

在将玩家身体附加到圆体上的特定点方面,您必须通过关节def的某些参数(如anchorPoint)这样做。例如,b2PrismaticJoints有anchorPoint,它定义了关节运动范围的中心。