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



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

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

在将玩家主体附加到圆形主体上的特定点方面,您必须通过联合定义的某些参数(如 anchorPoint)来实现。例如,b2棱镜关节具有锚点,它定义了关节运动范围的中心。

最新更新