예제 #1
0
        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);
        }
예제 #2
0
        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);
        }