Beispiel #1
0
    public void SetupLevel(int levelNumber)
    {
        LevelData level = LevelData.Get(levelNumber, ScreenResolution.GetCurrentViewport());

        nodes = new List <Node> ();
        edges = new List <Edge> ();

        int count = 0;

        foreach (Vector2 vector in level.nodes)
        {
            GameObject nodeObject = Instantiate(nodePrefab) as GameObject;
            nodeObject.name = "Node #" + count++;
            nodeObject.transform.position = new Vector3(vector.x, vector.y, 0);

            Node node = nodeObject.GetComponent <Node> ();
            nodes.Add(node);
        }

        foreach (V vector in level.edges)
        {
            GameObject edgeObject = Instantiate(edgePrefab) as GameObject;
            edgeObject.name = "Edge " + vector.input + "-" + vector.output;
            Edge edge = edgeObject.GetComponent <Edge> ();
            edge.input  = nodes [(int)vector.input];
            edge.output = nodes [(int)vector.output];

            // Add to our global vertices list
            edges.Add(edge);

            // And inform nodes they've been connected
            edge.input.AddEdge(edge);
            edge.output.AddEdge(edge);
        }

        new Solver(this);
    }