Exemplo n.º 1
0
    public void AlltileGetSurroundCard()
    {
        ///测定计算周围的卡片
        foreach (TileCard tc in m_tileCardMap)
        {
            TileCard up    = null;
            TileCard down  = null;
            TileCard left  = null;
            TileCard right = null;

            TileCardAnchor upAnchor    = new TileCardAnchor(tc.m_Anchor.x, tc.m_Anchor.y + 1);
            TileCardAnchor downAnchor  = new TileCardAnchor(tc.m_Anchor.x, tc.m_Anchor.y - 1);
            TileCardAnchor leftAnchor  = new TileCardAnchor(tc.m_Anchor.x - 1, tc.m_Anchor.y);
            TileCardAnchor rightAnchor = new TileCardAnchor(tc.m_Anchor.x + 1, tc.m_Anchor.y);

            if (upAnchor.x >= 0 && upAnchor.x < 4 && upAnchor.y >= 0 && upAnchor.y < 4)
            {
                up = m_tileCardMap[upAnchor.x, upAnchor.y];
            }

            if (downAnchor.x >= 0 && downAnchor.x < 4 && downAnchor.y >= 0 && downAnchor.y < 4)
            {
                down = m_tileCardMap[downAnchor.x, downAnchor.y];
            }

            if (leftAnchor.x >= 0 && leftAnchor.x < 4 && leftAnchor.y >= 0 && leftAnchor.y < 4)
            {
                left = m_tileCardMap[leftAnchor.x, leftAnchor.y];
            }

            if (rightAnchor.x >= 0 && rightAnchor.x < 4 && rightAnchor.y >= 0 && rightAnchor.y < 4)
            {
                right = m_tileCardMap[rightAnchor.x, rightAnchor.y];
            }

            NeighborCard nc = new NeighborCard(up, down, left, right);

            tc.StartByTileCardMangerSetNeighbor(nc);
        }
    }
    public NeighborCard(NeighborCard n)
    {
        up    = n.up;
        down  = n.down;
        left  = n.left;
        right = n.right;

        if (up)
        {
            allTileCard.Add(up);
        }
        if (down)
        {
            allTileCard.Add(down);
        }
        if (left)
        {
            allTileCard.Add(left);
        }
        if (right)
        {
            allTileCard.Add(right);
        }
    }
Exemplo n.º 3
0
    private void Awake()
    {
        m_Calculate = GetComponent <TileObjCalculate>();

        for (int x = 0; x < 4; x++)
        {
            for (int y = 0; y < 4; y++)
            {
                TileCardAnchor tca = new TileCardAnchor(x, y);
                m_tileCardAnchorMap[x, y] = tca;
            }
        }

        foreach (TileCardAnchor tca in m_tileCardAnchorMap)
        {
            GameObject obj = Instantiate(m_TileCardPrefab, tca.position, transform.rotation);
            m_tileCardMap[tca.x, tca.y] = obj.GetComponent <TileCard>();
            StringBuilder sb = new StringBuilder(tca.x + "," + tca.y);
            obj.name = sb.ToString();
            obj.GetComponent <TileCard>().StartByTileCardManger(tca);
        }


        ///测定计算周围的卡片
        foreach (TileCard tc in m_tileCardMap)
        {
            TileCard up    = null;
            TileCard down  = null;
            TileCard left  = null;
            TileCard right = null;

            TileCardAnchor upAnchor    = new TileCardAnchor(tc.m_Anchor.x, tc.m_Anchor.y + 1);
            TileCardAnchor downAnchor  = new TileCardAnchor(tc.m_Anchor.x, tc.m_Anchor.y - 1);
            TileCardAnchor leftAnchor  = new TileCardAnchor(tc.m_Anchor.x - 1, tc.m_Anchor.y);
            TileCardAnchor rightAnchor = new TileCardAnchor(tc.m_Anchor.x + 1, tc.m_Anchor.y);

            if (upAnchor.x >= 0 && upAnchor.x < 4 && upAnchor.y >= 0 && upAnchor.y < 4)
            {
                up = m_tileCardMap[upAnchor.x, upAnchor.y];
            }

            if (downAnchor.x >= 0 && downAnchor.x < 4 && downAnchor.y >= 0 && downAnchor.y < 4)
            {
                down = m_tileCardMap[downAnchor.x, downAnchor.y];
            }

            if (leftAnchor.x >= 0 && leftAnchor.x < 4 && leftAnchor.y >= 0 && leftAnchor.y < 4)
            {
                left = m_tileCardMap[leftAnchor.x, leftAnchor.y];
            }

            if (rightAnchor.x >= 0 && rightAnchor.x < 4 && rightAnchor.y >= 0 && rightAnchor.y < 4)
            {
                right = m_tileCardMap[rightAnchor.x, rightAnchor.y];
            }

            NeighborCard nc = new NeighborCard(up, down, left, right);

            tc.StartByTileCardMangerSetNeighbor(nc);
        }
    }
 public void StartByTileCardMangerSetNeighbor(NeighborCard n)
 {
     m_neigbborCard = new NeighborCard(n);
 }