Guest User

Limb Update() Method

a guest
Apr 23rd, 2014
17
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         public void Update()
  2.     {
  3.         if (Parent == null && Master != null)
  4.         {
  5.             Matrix rotate = Matrix.CreateRotationZ(Master.Rotation);
  6.             LocalPosition = Vector2.Transform(Offset, rotate);
  7.  
  8.             while ((Rotation - Master.Rotation) > Math.PI)
  9.                 Rotation -= (float)(2 * Math.PI);
  10.             while ((Rotation - Master.Rotation) < -Math.PI)
  11.                 Rotation  += (float)(2 * Math.PI);
  12.  
  13.             if (Math.Abs(Master.Rotation - Rotation) > RotationalDifference)
  14.                 Rotation = MathHelper.Lerp(Rotation, Master.Rotation, RotateSpeed);
  15.         }
  16.         else if (Parent != null)
  17.         {
  18.             Matrix rotate = Matrix.CreateRotationZ(Parent.Rotation);
  19.             LocalPosition = Vector2.Transform(Offset, rotate);
  20.  
  21.             while ((Rotation - Parent.Rotation) > Math.PI)
  22.                 Rotation = Rotation - (float)(2 * Math.PI);
  23.             while ((Rotation - Parent.Rotation) < -Math.PI)
  24.                 Rotation = Rotation + (float)(2 * Math.PI);
  25.  
  26.             if (Math.Abs(Parent.Rotation - Rotation) > RotationalDifference)
  27.                 Rotation = MathHelper.Lerp(Rotation, Parent.Rotation, RotateSpeed);
  28.         }
  29.  
  30.         foreach (Limb l in Children)
  31.         {
  32.             l.Update();
  33.         }
  34.     }
RAW Paste Data