コード例 #1
0
    /*
     * 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);
    }