// Use this for initialization
    void Start()
    {
        PlayerDetailsComp = GetComponent <PlayerDetails> ();
        DropWaterComp     = GetComponent <DropWater> ();

        Altitude      = TargetAltitude = 1.0f;
        OriginalScale = transform.localScale;
    }
    // Use this for initialization
    void Start()
    {
        PlayerDetailsComp = GetComponent<PlayerDetails> ();
        DropWaterComp = GetComponent<DropWater> ();

        Altitude = TargetAltitude = 1.0f;
        OriginalScale = transform.localScale;
    }
Beispiel #3
0
        /// <summary>
        /// Find optimal running route through cougar
        /// </summary>
        /// <param name="geometry"></param>
        private static void RunCougarFinder(Geometry geometry)
        {
            geometry = new DropBuildings().Transform(geometry);
            geometry = new DropWater().Transform(geometry);

            OutputPolygons("275765", geometry);

            geometry = new OnlyTraversable().Transform(geometry);
            geometry = new CollapseParkingLots().Transform(geometry);
            var cougar = geometry.Relations.First(x => x.Id == "275765");
            var ways   = new LabelWaysInRelation().Transform(cougar, geometry);

            ways = new SplitBisectedWays().Transform(ways);
            DebugOut(ways, "labeledWays.json");

            var targetNodes = new HashSet <Node>();

            foreach (var way in ways)
            {
                if (way.Tags["rfInPolygon"] == "in")
                {
                    targetNodes.Add(way.Nodes.First());
                    targetNodes.Add(way.Nodes.Last());
                }
            }

            var graph = new GraphBuilder(new RequiredEdgeGraphFilter(), new ReasonablyEnjoyableRunningCost()).BuildGraph(ways.ToArray(), out var originalEdgeWays);

            new GraphSummaryOutputter(outputLocation).OutputGraph(graph, originalEdgeWays, "reducedGraph.json");

            var requiredCost = graph.RequiredEdgeCost();

            // lazy route
            var lazyRouteFinder = new RouteFinder <Node>(new LazyGraphAugmenter <Node>());
            var lazyRoute       = lazyRouteFinder.GetRoute(graph);
            var lazyRouteCost   = lazyRoute.Select(x => x.Distance).Sum();

            // do regular route (rebuilds graph)
            graph = new GraphBuilder(new RequiredEdgeGraphFilter(), new ReasonablyEnjoyableRunningCost()).BuildGraph(ways.ToArray(), out originalEdgeWays);
            var greedRouteFinder = new RouteFinder <Node>(new GreedyGraphAugmenter <Node>());
            var route            = greedRouteFinder.GetRoute(graph);

            var routeCost = route.Select(x => x.Distance).Sum();

            //new RouteCoverageOutputter(outputLocation).OutputGraph(route, originalEdgeWays, "greedyRouteCoverage.json");

            new RouteDetailOutputter(ways, outputLocation, "lazyRouteCoverage.json", "instructions.txt").DescribeRoutesAsWays(lazyRoute);

            Console.WriteLine($"Required running: {requiredCost}");
            Console.WriteLine($"Lazy Route: {lazyRouteCost}");
            Console.WriteLine($"Greedy Route: {routeCost}");
            Console.Read();
        }
Beispiel #4
0
    // Use this for initialization
    void Start()
    {
        Altitude          = TargetAltitude = 1.0f;
        Direction         = new Vector3(0, 1, 0);
        bDied             = false;
        bGamePaused       = false;
        HowToPlay         = GameObject.Find("HowToPlay").GetComponent <Image> ();
        HowToPlay.enabled = false;
        DropWaterComp     = GetComponent <DropWater> ();
        PlayerDetailsComp = GetComponent <PlayerDetails>();
        GameOverText.text = "";

        DropShadowObject = transform.GetChild(0).gameObject;
        OriginalScale    = transform.localScale;
        rend             = gameObject.GetComponent <SpriteRenderer>();

        bInTheAir = true;
    }
    // Use this for initialization
    void Start()
    {
        Altitude = TargetAltitude = 1.0f;
        Direction = new Vector3 (0, 1, 0);
        bDied = false;
        bGamePaused = false;
        HowToPlay=GameObject.Find ("HowToPlay").GetComponent<Image> ();
        HowToPlay.enabled = false;
        DropWaterComp = GetComponent<DropWater> ();
        PlayerDetailsComp = GetComponent<PlayerDetails>();
        GameOverText.text = "";

        DropShadowObject = transform.GetChild(0).gameObject;
        OriginalScale = transform.localScale;
        rend = gameObject.GetComponent<SpriteRenderer>();

        bInTheAir = true;
    }