Example #1
0
    /// <summary>
    /// 当点击按下时间触发
    /// </summary>
    /// <param name="eventData"></param>
    public void OnPointerDown(PointerEventData eventData)
    {
        //如果按下的是鼠标左键
        if (Input.GetKeyDown(KeyCode.Mouse0))
        {
            //该点被玩家标记为雷或者已经排除,那么retrun
            if (IsSign == true || uiRoot.panl[Sizex, Sizey] == 4)
            {
                return;
            }
            //若这点在二维数值中标记是雷
            if (uiRoot.panl[Sizex, Sizey] == 1)
            {
                //替换Mask组件的图片精灵
                Mask.sprite = mineSprite;
                //将显示图片隐藏,将边框隐藏;
                ShowImage.gameObject.SetActive(false);
                Frame.gameObject.SetActive(false);
                //调用游戏结束;
                uiRoot.GameOver();
            }
            //如果该点是周围一个雷也没有的空白点
            else if (uiRoot.panl[Sizex, Sizey] == 3)
            {
                //执行清除空白点函数;
                ClearNnmTextZero();
                //播放背景动画,和所有Item动画
                bgAnimator.GetComponent <GameAnimator>().PlayBgAnimator();
                uiRoot.PlayAnimator();
            }
            //如果该点是周围有雷的
            else if (uiRoot.panl[Sizex, Sizey] == 2)
            {
                //胜利数组加1
                uiRoot.WinNum++;
                //将Mask的图片显示透明度设置为0,完全透明
                Mask.color = new Color(255, 255, 255, 0);
                //将该点在维尔数组中标记为4.表明它是已经排除过的雷区
                uiRoot.panl[Sizex, Sizey] = 4;

                bgAnimator.GetComponent <GameAnimator>().PlayBgAnimator();
                uiRoot.PlayAnimator();
            }
            //如果胜利数字为71就胜利(将所有的没有雷的地方)
            if (uiRoot.WinNum == 71)
            {
                uiRoot.GameWin();
            }
        }
        //如果按下都是右键
        if (Input.GetKeyDown(KeyCode.Mouse1))
        {
            if (uiRoot.panl[Sizex, Sizey] == 4)
            {
                return;
            }
            //没有被玩家标记为有雷
            if (IsSign == false && mineNum.Num > 0)
            {
                //将该点panl数组的标记数赋值给temp数组的该点;
                temp[Sizex, Sizey] = uiRoot.panl[Sizex, Sizey];
                //显示标记图片
                Sign.SetActive(true);
                IsSign = true;
                //将该点排除
                uiRoot.panl[Sizex, Sizey] = 5;
                //雷数减一
                mineNum.Num--;
                //调用显示雷数的函数
                mineNum.PrintNum();
            }
            else if (IsSign == true && uiRoot.panl[Sizex, Sizey] == 5)
            {
                Sign.SetActive(false);
                IsSign = false;
                //将该点temp数组的标记数赋值给数组panl的该点;
                uiRoot.panl[Sizex, Sizey] = temp[Sizex, Sizey];
                mineNum.Num++;
                mineNum.PrintNum();
            }
        }
    }