Exemple #1
0
        public void update(double dt)
        {
            sp = Math.Max(-maxTorque, Math.Min(maxTorque, sp + av));
            double dx  = -curr.y;
            double dy  = curr.x;
            double len = Math.Sqrt(dx * dx + dy * dy);

            dx     = dx / len;
            dy     = dy / len;
            curr.x = curr.x + sp * dx;
            curr.y = curr.y + sp * dy;
            double ox = prev.x;
            double oy = prev.y;

            prev.x = curr.x;
            double px = prev.x;

            //= curr.x
            prev.y = curr.y;
            double py = prev.y;

            //= curr.y
            curr.x = curr.x + APEngine.getDamping() * (px - ox);
            curr.y = curr.y + APEngine.getDamping() * (py - oy);
            double clen = Math.Sqrt(curr.x * curr.x + curr.y * curr.y);
            double diff = (clen - wr) / clen;

            curr.x = curr.x - curr.x * diff;
            curr.y = curr.y - curr.y * diff;
        }
        public virtual void update(double dt2)
        {
            if (_fixed)
            {
                return;

                return;
            }
            addForce(APEngine.force);
            addMasslessForce(APEngine.masslessForce);
            temp.copy(curr);
            Vector nv = getVelocity().plus(forces.multEquals(dt2));

            curr.plusEquals(nv.multEquals(APEngine.getDamping()));
            prev.copy(temp);
            forces.setTo(0, 0);
        }