Exemplo n.º 1
0
    public void ChangeCard(TileCard a, TileCard b)
    {
        //tilemap素组内的调整
        TileCard c = a;

        m_tileCardMap[a.m_Anchor.x, a.m_Anchor.y] = b;
        m_tileCardMap[b.m_Anchor.x, b.m_Anchor.y] = c;

        //tilecard内的anchor的调整。
        TileCardAnchor ca = a.m_Anchor;

        a.m_Anchor = b.m_Anchor;
        b.m_Anchor = ca;

        //tilecard内的currentlocation的调整。
        a.m_currentLocation = a.m_Anchor.position;
        b.m_currentLocation = b.m_Anchor.position;



        //回到具体的位置。
        a.StopMove();
        b.StopMove();

        AlltileGetSurroundCard();
    }
 public void StartByTileCardManger(TileCardAnchor tca)
 {
     m_BackSpriteRenderer.sprite  = m_BackGroundSprites;
     m_FrontSpriteRenderer.sprite = m_FrontGroundSprites;
     m_currentLocation            = (Vector2)transform.position;
     m_Anchor = tca;
 }
Exemplo n.º 3
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);
        }
    }
Exemplo n.º 4
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);
        }
    }