home *** CD-ROM | disk | FTP | other *** search
/ 404 Jogos / CLJG.iso / Diversos / Beez.swf / scripts / Box2D / Dynamics / Joints / b2PulleyJointDef.as < prev    next >
Encoding:
Text File  |  2008-09-03  |  2.0 KB  |  69 lines

  1. package Box2D.Dynamics.Joints
  2. {
  3.    import Box2D.Common.Math.b2Vec2;
  4.    import Box2D.Dynamics.b2Body;
  5.    
  6.    public class b2PulleyJointDef extends b2JointDef
  7.    {
  8.        
  9.       
  10.       public var maxLength1:Number;
  11.       
  12.       public var maxLength2:Number;
  13.       
  14.       public var length1:Number;
  15.       
  16.       public var localAnchor1:b2Vec2;
  17.       
  18.       public var localAnchor2:b2Vec2;
  19.       
  20.       public var groundAnchor1:b2Vec2;
  21.       
  22.       public var groundAnchor2:b2Vec2;
  23.       
  24.       public var ratio:Number;
  25.       
  26.       public var length2:Number;
  27.       
  28.       public function b2PulleyJointDef()
  29.       {
  30.          groundAnchor1 = new b2Vec2();
  31.          groundAnchor2 = new b2Vec2();
  32.          localAnchor1 = new b2Vec2();
  33.          localAnchor2 = new b2Vec2();
  34.          super();
  35.          type = b2Joint.e_pulleyJoint;
  36.          groundAnchor1.Set(-1,1);
  37.          groundAnchor2.Set(1,1);
  38.          localAnchor1.Set(-1,0);
  39.          localAnchor2.Set(1,0);
  40.          length1 = 0;
  41.          maxLength1 = 0;
  42.          length2 = 0;
  43.          maxLength2 = 0;
  44.          ratio = 1;
  45.          collideConnected = true;
  46.       }
  47.       
  48.       public function Initialize(b1:b2Body, b2:b2Body, ga1:b2Vec2, ga2:b2Vec2, anchor1:b2Vec2, anchor2:b2Vec2, r:Number) : void
  49.       {
  50.          body1 = b1;
  51.          body2 = b2;
  52.          groundAnchor1.SetV(ga1);
  53.          groundAnchor2.SetV(ga2);
  54.          localAnchor1 = body1.GetLocalPoint(anchor1);
  55.          localAnchor2 = body2.GetLocalPoint(anchor2);
  56.          var d1X:Number = anchor1.x - ga1.x;
  57.          var d1Y:Number = anchor1.y - ga1.y;
  58.          length1 = Math.sqrt(d1X * d1X + d1Y * d1Y);
  59.          var d2X:Number = anchor2.x - ga2.x;
  60.          var d2Y:Number = anchor2.y - ga2.y;
  61.          length2 = Math.sqrt(d2X * d2X + d2Y * d2Y);
  62.          ratio = r;
  63.          var C:Number = length1 + ratio * length2;
  64.          maxLength1 = C - ratio * b2PulleyJoint.b2_minPulleyLength;
  65.          maxLength2 = (C - b2PulleyJoint.b2_minPulleyLength) / ratio;
  66.       }
  67.    }
  68. }
  69.