Exemple #1
0
        void ProgObstacle()
        {
            while (true)
            {
                for (int i = 0; i < Omgr.Count; i++)
                {
                    double   distance;
                    Obstacle obstacle = Omgr.At(i);

                    Vect2D vect = GetVectorToTarget(obstacle.pos, 0);
                    rb.SetV(0);
                    TurnAbsAngle(vect.GetPhiGrad(), 5);

                    do
                    {
                        double dPhi = GetRelAngle(vect.GetPhiGrad()) / 10;
                        rb.Set_dPhi(dPhi);
                        rb.SetV(5);

                        WaitForUpdate();

                        distance = vect.VectLength();
                        vect     = GetVectorToTarget(obstacle.pos, 0);
                    }while (vect.VectLength() < distance);
                }

                WaitForUpdate();
            }
        }
Exemple #2
0
        void SetFollow(Vect2D target, double keepDistance, double speedFactor)
        {
            Vect2D vect = GetVectorToTarget(target, keepDistance);

            double dPhi = GetRelAngle(vect.GetPhiGrad()) * speedFactor * 2;
            double v    = vect.VectLength() * speedFactor;

            if (v < speedFactor * 1.1)
            {
                dPhi = v = 0;
            }

            rb.Set_dPhi(dPhi);
            rb.SetV(v);
        }