/* * public SteeringOutput Seek() * { * return new DynamicSeek(agent.k, target.k, maxAcceleration).getSteering(); * } * public SteeringOutput Flee() * { * return new DynamicFlee(agent.k, target.k, maxAcceleration).getSteering(); * } * * public SteeringOutput Pursue() * { * DynamicPursue dp = new DynamicPursue(agent.k, target.k, maxAcceleration, maxPrediction); * SteeringOutput so = dp.getSteering(); * agent.DrawCircle(dp.predictPos, targetRadiusL); * return so; * } */ public SteeringOutput Arrive() { DynamicArrive da = new DynamicArrive(agent.k, target.k, maxAcceleration, maxSpeed, targetRadiusL, slowRadiusL); agent.DrawCircle(target.k.position, slowRadiusL); SteeringOutput so = da.getSteering(); if (pathFollow && !change && current < 5) { current++; change = true; } else if (!agent.hit) { agent.CaughtTarget(); } return(so); }