protected bool Init(CCPhysicsBody a, CCPhysicsBody b, float phase, float ratio) { if (!base.Init(a, b)) return false; cpConstraint joint = new cpGearJoint(GetBodyInfo(a).Body, GetBodyInfo(b).Body, phase, ratio); if (joint == null) return false; _info.Add(joint); return true; }
protected bool Init(CCPhysicsBody a, CCPhysicsBody b, CCPoint anchr) { if (!base.Init(a, b)) return false; GetBodyNode(a).Position = anchr; GetBodyNode(b).Position = anchr; // add a pivot joint to fixed two body together //cpConstraint joint = cpPivotJoint.cpPivotJointNew(getBodyInfo(a).getBody(), // getBodyInfo(b).getBody(), // anchr); cpConstraint joint = new cpPivotJoint(GetBodyInfo(a).Body, GetBodyInfo(b).Body, PhysicsHelper.CCPointToCpVect(anchr)); if (joint == null) return false; _info.Add(joint); // add a gear joint to make two body have the same rotation. joint = new cpGearJoint(GetBodyInfo(a).Body, GetBodyInfo(b).Body, 0, 1); if (joint == null) return false; _info.Add(joint); SetCollisionEnable(false); return true; }