示例#1
0
 public void AddListener(AnTile t)
 {
     if (t0 == null)
     {
         t0 = t;
     }
     else if (t1 == null)
     {
         t1 = t;
     }
     else
     {
         Debug.Log("We've got a problem (" + t0.x + " " + t0.y + ") (" + t1.x + " " + t1.y + ") (" + " " + t.x + " " + t.y + ")");
     }
 }
示例#2
0
 public IEnumerator TileSetup()
 {
     tileMap = new AnTile[height][];
     for (int h = 0; h < height; h++)
     {
         tileMap[h] = new AnTile[width];
         for (int w = 0; w < width; w++)
         {
             AnTile localTile = new AnTile(w, h);
             AssignTileVertices(localTile);
             tileMap[h][w] = localTile;
         }
         yield return(null);
     }
     yield return(null);
 }
示例#3
0
 public void UpdateTile(AnTile anTile, int sW, int sH)
 {
     //TODO allow tiles to be updated from outside sources
 }
示例#4
0
    private void AssignTileVertices(AnTile localTile)
    {
        int x      = localTile.x;
        int y      = localTile.y;
        int wShift = y % 2;
        int baseY  = y * 2;

        TileVertex v0 = null;
        TileVertex v1 = null;
        TileVertex v2 = null;
        TileVertex v3 = null;
        TileVertex v4 = null;
        TileVertex v5 = null;

        if (x != width - 1)
        {
            v0 = vertexMap[baseY + 3][x + wShift];
            v1 = vertexMap[baseY + 2][x + 1];
            v2 = vertexMap[baseY + 1][x + 1];
            v3 = vertexMap[baseY][x + wShift];
            v4 = vertexMap[baseY + 1][x];
            v5 = vertexMap[baseY + 2][x];
        }
        else
        {
            if (wShift == 0)
            {
                v0 = vertexMap[baseY + 3][x];
                v1 = vertexMap[baseY + 2][0];
                v2 = vertexMap[baseY + 1][0];
                v3 = vertexMap[baseY][x];
                v4 = vertexMap[baseY + 1][x];
                v5 = vertexMap[baseY + 2][x];
            }
            else
            {
                v0 = vertexMap[baseY + 3][0];
                v1 = vertexMap[baseY + 2][0];
                v2 = vertexMap[baseY + 1][0];
                v3 = vertexMap[baseY][0];
                v4 = vertexMap[baseY + 1][x];
                v5 = vertexMap[baseY + 2][x];
            }
        }



        localTile.v0 = v0;
        localTile.v1 = v1;
        localTile.v2 = v2;
        localTile.v3 = v3;
        localTile.v4 = v4;
        localTile.v5 = v5;


        localTile.SetBorder("uRBorder", v0.GetSharedBorder(v1));

        localTile.SetBorder("rBorder", v1.GetSharedBorder(v2));

        localTile.SetBorder("dRBorder", v2.GetSharedBorder(v3));

        localTile.SetBorder("dLBorder", v3.GetSharedBorder(v4));

        localTile.SetBorder("lBorder", v4.GetSharedBorder(v5));

        localTile.SetBorder("uLBorder", v5.GetSharedBorder(v0));
    }