Example #1
0
 private void OnDragBegin()
 {
     if (go != null)
     {
         m_pieceItem = go.GetComponent <PieceItem>();
         if (m_pieceItem != null)
         {
             m_pieceItem.OnDragBegin();
             isDrage = true;
         }
     }
 }
Example #2
0
        public override void Init(int width, int height)
        {
            base.Init(width, height);

            pieceControls = new PieceItem[8];
            for (int i = 0; i < 8; i++)
            {
                pieceControls[i] = new PieceItem(this, 8 + (i % 2) * 192, 111 + (i / 2) * 55, 193, 56);
                pieceControls[i].Init(i);
            }
            RefreshInfo();
            OnFrame(0, 0);
        }
Example #3
0
    /// <summary>
    /// 棋子复活
    /// </summary>
    /// <param name="lastEat"></param>
    /// <param name="to"></param>
    private void PieceReborn(int lastEat, Vector2 to)
    {
        int    color     = lastEat / 10;
        int    type      = lastEat % 10;
        string pieceName = "";

        if (color == (int)Config.PieceColor.BLACK)
        {
            pieceName = "Black_";
        }
        else
        {
            pieceName = "White_";
        }
        switch ((Config.PieceType)type)
        {
        case Config.PieceType.P:
            pieceName = pieceName + "P";
            break;

        case Config.PieceType.N:
            pieceName = pieceName + "N";
            break;

        case Config.PieceType.B:
            pieceName = pieceName + "B";
            break;

        case Config.PieceType.R:
            pieceName = pieceName + "R";
            break;

        case Config.PieceType.Q:
            pieceName = pieceName + "Q";
            break;

        case Config.PieceType.K:
            pieceName = pieceName + "K";
            break;
        }
        GameObject temp = GameObject.Instantiate(m_piece);

        temp.name             = to.x + "_" + to.y;
        temp.transform.parent = m_qizi.transform;
        temp.SetActive(true);
        PieceItem pieceItem = temp.AddComponent <PieceItem>();

        pieceItem.InitView(temp, new Piece((Config.PieceColor)color, (Config.PieceType)type, (int)to.x, (int)to.y), false);
        pieceItem.isReborn = true;
        App.ObjectPoolManager.RegisteObject(pieceName, "FX/" + pieceName, 0, 30, -1);
        App.ObjectPoolManager.Instantiate(pieceName, (GameObject obj) =>
        {
            if (color == (int)Config.PieceColor.BLACK)
            {
                obj.transform.localRotation = Quaternion.Euler(0, 180, 0);
            }
            obj.SetActive(true);
            obj.transform.parent        = temp.transform;
            obj.transform.localPosition = Vector3.zero;
            obj.transform.localScale    = new Vector3(1.1f, 1.1f, 1.1f);
            pieceItem.pieceModel        = obj;
        });
    }
Example #4
0
    /// <summary>
    /// 初始化棋盘
    /// </summary>
    private void InitChessBoard()
    {
        for (int y = 0; y < Config.Board.MaxY; y++)
        {
            for (int x = 0; x < Config.Board.MaxX; x++)
            {
                int piece = App.ChessLogic.GetPiece(x, y);
                if (piece >= 0)
                {
                    int    color     = piece / 10;
                    int    type      = piece % 10;
                    string pieceName = "";
                    if (color == (int)Config.PieceColor.BLACK)
                    {
                        pieceName = "Black_";
                    }
                    else
                    {
                        pieceName = "White_";
                    }
                    switch ((Config.PieceType)type)
                    {
                    case Config.PieceType.P:
                        pieceName = pieceName + "P";
                        break;

                    case Config.PieceType.N:
                        pieceName = pieceName + "N";
                        break;

                    case Config.PieceType.B:
                        pieceName = pieceName + "B";
                        break;

                    case Config.PieceType.R:
                        pieceName = pieceName + "R";
                        break;

                    case Config.PieceType.Q:
                        pieceName = pieceName + "Q";
                        break;

                    case Config.PieceType.K:
                        pieceName = pieceName + "K";
                        break;
                    }
                    GameObject temp = GameObject.Instantiate(m_piece);
                    temp.transform.parent = m_qizi.transform;
                    temp.SetActive(true);
                    PieceItem pieceItem = temp.AddComponent <PieceItem>();
                    pieceItem.InitView(temp, new Piece((Config.PieceColor)color, (Config.PieceType)type, x + 1, y + 1), false);

                    App.ObjectPoolManager.RegisteObject(pieceName, "FX/" + pieceName, 0, 30, -1);
                    App.ObjectPoolManager.Instantiate(pieceName, (GameObject obj) =>
                    {
                        if (selfColor == Config.PieceColor.WHITE)
                        {
                            obj.transform.localRotation = Quaternion.Euler(0, 180, 0);
                        }
                        obj.SetActive(true);
                        obj.transform.parent        = temp.transform;
                        obj.transform.localPosition = Vector3.zero;
                        obj.transform.localScale    = new Vector3(1.1f, 1.1f, 1.1f);
                        pieceItem.pieceModel        = obj;
                    });
                }
            }
        }
    }
Example #5
0
 public PieceItemMediator(PieceItem pieceItem, string name) : base(name + NAME)
 {
     m_viewComponent = pieceItem;
 }
Example #6
0
    private void OnUndoClick()
    {
        Debug.Log("OnUndoClick");
        App.ChessLogic.Undo(m_lastFrom, m_lastTo, m_lastEat);
        if (m_lastEat > -1)
        {
            int    color     = m_lastEat / 10;
            int    type      = m_lastEat % 10;
            string pieceName = "";
            if (color == (int)Config.PieceColor.BLACK)
            {
                pieceName = "Black_";
            }
            else
            {
                pieceName = "White_";
            }
            switch ((Config.PieceType)type)
            {
            case Config.PieceType.P:
                pieceName = pieceName + "P";
                break;

            case Config.PieceType.N:
                pieceName = pieceName + "N";
                break;

            case Config.PieceType.B:
                pieceName = pieceName + "B";
                break;

            case Config.PieceType.R:
                pieceName = pieceName + "R";
                break;

            case Config.PieceType.Q:
                pieceName = pieceName + "Q";
                break;

            case Config.PieceType.K:
                pieceName = pieceName + "K";
                break;
            }
            GameObject temp = GameObject.Instantiate(m_chess);
            temp.name             = m_lastTo.x + "_" + m_lastTo.y;
            temp.transform.parent = m_qizi.transform;
            temp.SetActive(true);
            PieceItem pieceItem = temp.AddComponent <PieceItem>();
            pieceItem.InitView(temp, new Piece((Config.PieceColor)color, (Config.PieceType)type, (int)m_lastTo.x, (int)m_lastTo.y), true);
            pieceItem.isReborn = true;
            App.ObjectPoolManager.RegisteObject(pieceName, "FX/" + pieceName, 0, 30, -1);
            App.ObjectPoolManager.Instantiate(pieceName, (GameObject obj) =>
            {
                if (color == (int)Config.PieceColor.BLACK)
                {
                    obj.transform.localRotation = Quaternion.Euler(0, 180, 0);
                }
                obj.SetActive(true);
                obj.transform.parent        = temp.transform;
                obj.transform.localPosition = Vector3.zero;
                obj.transform.localScale    = new Vector3(1.1f, 1.1f, 1.1f);
                pieceItem.pieceModel        = obj;
            });
        }
        Vector2[] body = new Vector2[] { m_lastFrom, m_lastTo, new Vector2(m_lastEat, 0) };
        m_mediator.NotifyUndo(body);
    }