public void Move(PGB_Vector3 NextPosition) { _goalPosition = Library.ToVector3(NextPosition); while (true) { var leader = SelectLeader(); } }
// step by interval public override void MoveStep(PGB_Vector3 nextPosition) { var curr = _currentPosition; var next = Library.ToVector3(nextPosition); curr -= next; var ceta = MathF.Atan2(curr.Y, curr.X); var dx = MathF.Cos(ceta) * _speed; var dy = MathF.Sin(ceta) * _speed; while (curr.Equals(next)) { curr.X += dx; curr.Y += dy; } _currentPosition = curr; }
public PGB_Agent(PGB_Vector3 initialPosition, Single speed) : base(initialPosition, speed) { }
public abstract void MoveStep(PGB_Vector3 nextPosition);
protected Agent(PGB_Vector3 initialPosition, Single speed) { _currentPosition = Library.ToVector3(initialPosition); _speed = speed; }
public static Vector3 ToVector3(PGB_Vector3 v) { return(new Vector3(v.X, v.Y, v.Z)); }