0

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

4

1 回答 1

0

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

就将玩家身体附加到圆形身体上的特定点而言,您必须通过关节定义的某些参数(如锚点)来执行此操作。例如 b2PrismaticJoints 有 anchorPoint,它定义了关节运动范围的中心。

于 2012-06-28T12:58:07.443 回答