Beispiel #1
0
        public void Update(double elapsed)
        {
            for (int i = 0; i < SpringList.Count; i++)
            {
                Spring spring = SpringList[i];
                Spring.SpringForce(ref spring, out Vector2 force);
                spring.PointMassA.Force.X += force.X;
                spring.PointMassA.Force.Y += force.Y;
                spring.PointMassB.Force.X -= force.X;
                spring.PointMassB.Force.Y -= force.Y;
            }

            for (int i = 1; i < PointMassList.Count - 1; i++)
            {
                PointMassList[i].Velocity.X *= Damping;
                PointMassList[i].Velocity.Y *= Damping;
                PointMassList[i].Update(elapsed);
            }
        }
Beispiel #2
0
 public static void SpringForce(ref Spring spring, out Vector2 forceOut)
 {
     SpringForce(ref spring.PointMassA.Position, ref spring.PointMassA.Velocity,
                 ref spring.PointMassB.Position, ref spring.PointMassB.Velocity, spring.D, spring.K, spring.Damping, out forceOut);
 }