Ejemplo n.º 1
0
    private TravelMapInfo FakeMapInfo()
    {
        TravelMapInfo ret = new TravelMapInfo();

        for (int i = 0; i < 7; i++)
        {
            TravelPotInfo pot = new TravelPotInfo("地点" + i);
            pot.Opts = new List <string>(new string[] { "a", "b", "c" });
            ret.pots.Add(pot);
        }

        List <int[]> edges = new List <int[]>();

        edges.Add(new int[] { 0, 1 });
        edges.Add(new int[] { 1, 2 });
        edges.Add(new int[] { 1, 3 });
        edges.Add(new int[] { 2, 4 });
        edges.Add(new int[] { 2, 5 });
        edges.Add(new int[] { 4, 6 });
        edges.Add(new int[] { 5, 6 });

        ret.MapName = "Map00";
        ret.edges   = edges;
        return(ret);
    }
Ejemplo n.º 2
0
    public void LoadMap(TravelMapInfo info)
    {
        int numPot = info.pots.Count;

        Pots = mResLoader.Instantiate("Travel/Maps/" + info.MapName, PotLyaer);
        GeneratePots(info);

        for (int i = 0; i < info.edges.Count; i++)
        {
            int[] edge = info.edges[i];
            if (!state.graph.ContainsKey(edge[0]))
            {
                state.graph.Add(edge[0], new List <int>());
            }
            if (!state.graph.ContainsKey(edge[1]))
            {
                state.graph.Add(edge[1], new List <int>());
            }
            state.graph[edge[0]].Add(edge[1]);
            state.graph[edge[1]].Add(edge[0]);
        }
    }
Ejemplo n.º 3
0
    private void GeneratePots(TravelMapInfo info)
    {
        int idx = 0;

        foreach (Transform child in Pots.transform)
        {
            GameObject potGo = mResLoader.Instantiate("Travel/Pot", child);
            TravelPot  pot   = potGo.GetComponent <TravelPot> ();
            pot.Init(info.pots[idx], this);
            state.Pots.Add(pot);
            idx += 1;
        }



        foreach (int[] edge in info.edges)
        {
            GameObject   lineGo = mResLoader.Instantiate("Travel/Line", LineLayer);
            LineRenderer line   = lineGo.GetComponent <LineRenderer>();
            Vector3      e0     = state.Pots[edge[0]].transform.position;
            Vector3      e1     = state.Pots[edge[1]].transform.position;

            Vector3[] positions = { e0 + Vector3.forward, e1 + Vector3.forward };
            line.SetPositions(positions);
            state.lines.Add(line);
        }

        PlayerPawn = mResLoader.Instantiate("Travel/pawn");
        int     startIdx = 0;
        Vector2 startPos = state.Pots[startIdx].transform.position;

        PlayerPawn.transform.position = new Vector3(startPos.x, startPos.y, PawnZ);
        Vector3 cameraPos = ClampPosInBound(startPos);

        cameraPos.z = mainCamera.transform.position.z;
        mainCamera.transform.position = cameraPos;
    }