Esempio n. 1
0
    /// <summary>
    /// 通过鼠标点击来移动
    /// </summary>
    public void Move(Vector2 point)
    {
        if (chessReciprocalState == ChessReciprocalState.beChoosed)
        {
            Vector2[] canMovePoints = CanMovePoints(GameCache.Chess2Vector, GameCache.Vector2Chess).ToArray();

            if (canMovePoints.Length > 0)
            {
                for (int i = 0; i < canMovePoints.Length; i++)
                {
                    if (GameUtil.CompareVector2(point, canMovePoints[i]) == true)
                    {
                        if (GameController.IsBattle == true)
                        {
                            SetAttackerEvent(gameObject);//派发事件设置攻击者
                        }
                        int     x      = (int)point.x;
                        int     y      = (int)point.y;
                        Vector3 target = Scene3_UI.cells[x, y].transform.position;

                        iTween.MoveTo(gameObject, iTween.Hash("time", 0.1f, "position", target,
                                                              "easetype", iTween.EaseType.linear,
                                                              "onstart", "OnMoveStart",
                                                              "onstarttarget", gameObject,
                                                              "oncomplete", "OnMoveComplete",
                                                              "oncompletetarget", gameObject));
                        break;
                    }
                    else if (chessReciprocalState != ChessReciprocalState.moving)
                    {
                        CancelChoose();
                        Scene3_UI.ResetChessBoardPoints();
                    }
                    else
                    {
                        CancelChoose();
                        Scene3_UI.ResetChessBoardPoints();
                    }
                }
            }
            else
            {
                CancelChoose();
            }
        }
    }
Esempio n. 2
0
    /// <summary>
    /// 被选中
    /// </summary>
    /// <param name="isAdding">是否在加属性</param>
    public void BeChoosed(bool isAdding)
    {
        transform.FindChild("baibian").gameObject.SetActive(true);  //有白边圈住
        if (!isAdding)
        {
            Scene3_UI.ResetChessBoardPoints();
            //可以提示出该棋子能移动的所有位置
            Vector2[] canMovePoints = CanMovePoints(GameCache.Chess2Vector, GameCache.Vector2Chess).ToArray();
            for (int i = 0; i < canMovePoints.Length; i++)
            {
                int x = (int)canMovePoints[i].x;
                int y = (int)canMovePoints[i].y;

                Scene3_UI.cells[x, y].GetComponent <Image>().enabled = true;
                //若可移动点上存在其他棋子,那肯定就是敌方棋子了,提示可以击杀之
                if (GameCache.Vector2Chess.ContainsKey(canMovePoints[i]))
                {
                    GameCache.Vector2Chess[canMovePoints[i]].transform.FindChild("redpoint").gameObject.SetActive(true);
                    TipsKillEvent(canMovePoints[i]);
                }
            }
            chessReciprocalState = ChessReciprocalState.beChoosed;
        }
    }
Esempio n. 3
0
    void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }
        leftGameMode   = GameObject.Find("Canvas/Left/GameMode");
        leftReplayMode = GameObject.Find("Canvas/Left/ReplayMode");
        blackAllTime   = GameObject.Find("Canvas/Left/GameMode/Black/AllTime/Value").GetComponent <Text>();
        blackStepTime  = GameObject.Find("Canvas/Left/GameMode/Black/StepTime/Value").GetComponent <Text>();
        redAllTime     = GameObject.Find("Canvas/Left/GameMode/Red/AllTime/Value").GetComponent <Text>();
        redStepTime    = GameObject.Find("Canvas/Left/GameMode/Red/StepTime/Value").GetComponent <Text>();
        lostHp         = GameObject.Find("Canvas/Left/ReplayMode/LostLife/Label").GetComponent <Text>();
        addAttr        = GameObject.Find("Canvas/Left/ReplayMode/AddAttr/Label").GetComponent <Text>();
        /*****************中******************/
        GridsTrans = GameObject.Find("Grids").transform;
        cells      = new GameObject[9, 10];
        for (int y = 0; y <= 9; y++)
        {
            Transform row = GridsTrans.FindChild("row" + y);
            for (int x = 0; x <= 8; x++)
            {
                cells[x, y] = row.FindChild("cell" + x).gameObject;
                cells[x, y].GetComponent <Image>().enabled = false;
            }
        }
        GameCache.SetCoords(cells);     //将场景找到的cell作为参数,处理写入映射缓存

        beginBtn        = GameObject.Find("Canvas/Middle/BeginBtn");
        addAtrrPanel    = GameObject.Find("Canvas/Middle/AddAttrPanel");
        addChessName    = GameObject.Find("Canvas/Middle/AddAttrPanel/ChessName").GetComponent <Text>();
        addHpValue      = GameObject.Find("Canvas/Middle/AddAttrPanel/Grid/Hp/Value").GetComponent <Text>();
        addAttackValue  = GameObject.Find("Canvas/Middle/AddAttrPanel/Grid/Attack/Value").GetComponent <Text>();
        addDefenceValue = GameObject.Find("Canvas/Middle/AddAttrPanel/Grid/Defence/Value").GetComponent <Text>();
        endPanel        = GameObject.Find("Canvas/Middle/EndPanel");
        winer           = GameObject.Find("Canvas/Middle/EndPanel/ResultLabel").GetComponent <Text>();
        /******************右******************/
        rightGameMode    = GameObject.Find("Canvas/Right/GameMode");
        rightReplayMode  = GameObject.Find("Canvas/Right/ReplayMode");
        blackDetailPanel = GameObject.Find("Canvas/Right/BlackAttrDetail");
        b_Name           = blackDetailPanel.transform.FindChild("ChessName").GetComponent <Text>();
        b_Hp             = blackDetailPanel.transform.FindChild("Grid/Hp/Value").GetComponent <Text>();
        b_Attack         = blackDetailPanel.transform.FindChild("Grid/Attack/Value").GetComponent <Text>();
        b_Defence        = blackDetailPanel.transform.FindChild("Grid/Defence/Value").GetComponent <Text>();
        b_Combat         = blackDetailPanel.transform.FindChild("Combat/Value").GetComponent <Text>();
        redDetailPanel   = GameObject.Find("Canvas/Right/RedAttrDetail");
        r_Name           = redDetailPanel.transform.FindChild("ChessName").GetComponent <Text>();
        r_Hp             = redDetailPanel.transform.FindChild("Grid/Hp/Value").GetComponent <Text>();
        r_Attack         = redDetailPanel.transform.FindChild("Grid/Attack/Value").GetComponent <Text>();
        r_Defence        = redDetailPanel.transform.FindChild("Grid/Defence/Value").GetComponent <Text>();
        r_Combat         = redDetailPanel.transform.FindChild("Combat/Value").GetComponent <Text>();
        stepsLabel       = rightReplayMode.transform.FindChild("Step/StepsLabel").GetComponent <Text>();

        AddAttrCompleteEvent                += HideAddAttrPanel;
        AddAttrCompleteEvent                += HideAttrPanel;
        ReplayModeEvent                     += ResetChessBoardPoints;
        ReplayModeEvent                     += UpdateReplayModeText;
        UndoEvent                           += ResetChessBoardPoints;
        UndoEvent                           += UpdateAttrPanel;
        TimeManager.TimeUpEventWithParam    += ShowEndPanel;
        TimeManager.TimeUpEvent             += ResetChessBoardPoints;
        TimeManager.TimeUpEvent             += HideAddAttrPanel;
        Chess_Boss.BossKilledEventWithParam += ShowEndPanel;
        Chess_Boss.BossKilledEvent          += ResetChessBoardPoints;
        Chess_Boss.BossKilledEvent          += HideAddAttrPanel;
    }
Esempio n. 4
0
 /// <summary>
 /// 棋子点击事件
 /// </summary>
 public virtual void ChesseClicked()
 {
     if (GameController.playing == Playing.OnRed)
     {
         if (gameObject.tag == "Red")
         {
             if (chessReciprocalState == ChessReciprocalState.unChoosed) //若还没被选中
             {
                 ChooseEvent(gameObject);
                 BeChoosed(false);
             }
             else
             {
                 CancelChoose();
                 Scene3_UI.ResetChessBoardPoints();
             }
         }
         else
         {
             if (chessSituationState == ChessSituationState.BeTaget)
             {                                 //若被选中且被标记为红点,就是有人要吃你,把自身物体派发出去
                 GameController.IsBattle = true;
                 SetDefenderEvent(gameObject); //将自身防守方派发出去
                 MoveEvent(GameCache.Chess2Vector[gameObject]);
             }
             else
             {
                 return;
             }
         }
     }
     else if (GameController.playing == Playing.OnBlack)
     {
         if (gameObject.tag == "Black")
         {
             if (chessReciprocalState == ChessReciprocalState.unChoosed) //若还没被选中
             {
                 ChooseEvent(gameObject);
                 BeChoosed(false);
             }
             else
             {
                 CancelChoose();
                 Scene3_UI.ResetChessBoardPoints();
             }
         }
         else
         {
             if (chessSituationState == ChessSituationState.BeTaget)
             {                                 //若被选中且被标记为红点,就是有人要吃你,把自身物体派发出去
                 GameController.IsBattle = true;
                 SetDefenderEvent(gameObject); //将自身防守方派发出去
                 MoveEvent(GameCache.Chess2Vector[gameObject]);
             }
             else
             {
                 return;
             }
         }
     }
     else if (GameController.playing == Playing.RedAdding)
     {
         if (gameObject.tag == "Red")
         {
             ChooseEvent(gameObject);
             BeChoosed(true);
         }
         else
         {
             return;
         }
     }
     else if (GameController.playing == Playing.BlackAdding)
     {
         if (gameObject.tag == "Black")
         {
             ChooseEvent(gameObject);
             BeChoosed(true);
         }
         else
         {
             return;
         }
     }
 }
Esempio n. 5
0
 public void OnMoveStart()
 {
     chessReciprocalState = ChessReciprocalState.moving;
     Scene3_UI.ResetChessBoardPoints();
 }