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(); } }
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); }
public double GetPhi() { return(V.GetPhiGrad()); }