示例#1
0
        public void CreateHingeJoint(Pax4ObjectPhysicsPart p_child,
                                     bool p_disableChildController,
                                     JVector p_hingePositionParent,
                                     JVector p_hingeAxis)
        {
            if (_body == null || p_child == null)
            {
                return;
            }

            if (_hingeJoint == null)
            {
                _hingeJoint = new Dictionary <Pax4ObjectPhysicsPart, HingeJoint>();
            }

            if (p_disableChildController)
            {
                p_child.DisableConstraint();
            }

            HingeJoint hingeJoint = new HingeJoint(Pax4World._current._physicsSystem,
                                                   this._body,
                                                   p_child._body,
                                                   p_hingePositionParent,
                                                   p_hingeAxis);

            p_child._hingeJointParent = this;
            _hingeJoint.Add(p_child, hingeJoint);
        }
        public void SetPhysicsPart(Pax4ObjectPhysicsPart p_physicsPart)
        {
            if (p_physicsPart == null)
            {
                return;
            }

            p_physicsPart.DisableConstraint();

            _physicsPart = p_physicsPart;

            _physicsPart.AddConstraint(this);
        }
示例#3
0
        public void SetPhysicsPart(Pax4ObjectPhysicsPart p_physicsPart, int p_wayPointIndex = 0)
        {
            if (p_physicsPart == null)
            {
                return;
            }

            p_physicsPart.DisableConstraint();

            _physicsPart = p_physicsPart;

            _physicsPart.AddConstraint(this);

            if (_wayPointPath == null)
            {
                return;
            }

            _wayPointIndex   = p_wayPointIndex;
            _worldHeading    = _wayPointPath._wayPoint[_wayPointIndex] - _physicsPart._body.Position;
            _currentDistance = _worldHeading.Length();
        }