Exemplo n.º 1
0
    private void Awake()
    {
        mMask    = transform.Find("Mask").gameObject;
        mContent = transform.Find("Content");

        //遮罩事件
        EventTrigger.Get(mMask).onClick = (obj) => {
            //那所有色块反过来
            SetAllBlockState(true);
            //隐藏遮罩
            mMask.SetActive(false);
        };

        //获取所有色块
        for (int idx = 0; idx < mContent.childCount; idx++)
        {
            Transform tmpBlock = mContent.Find(idx.ToString());
            //先隐藏吧
            //tmpBlock.gameObject.SetActive(false);
            blockList.Add(tmpBlock);
            blockState.Add(tmpBlock, false);
            //注册回调函数
            EventTrigger.Get(tmpBlock.gameObject).onClick = (obj) =>
            {
                ClickBlock(obj, blockList.IndexOf(obj.transform));
            };
        }
        //读取配置表数据
        playData = PlayDataConfig.Instance.GetDataByID(GetPlayID());
    }
Exemplo n.º 2
0
    public void RefreshUI(int _innings, rep_message_start_game _playInfo)
    {
        this.innings  = _innings;
        this.playInfo = _playInfo;
        //初始界面状态
        SetUIState(0);
        //我的头像
        if (!string.IsNullOrEmpty(PlayerData.userIcon))
        {
            var headIcon = transform.Find("PlayerInfo/LeftHeadImage/Mask/Image").GetComponent <Image>();
            StartCoroutine(Function.DownloadImage(headIcon, PlayerData.userIcon));
        }
        //对手头像
        struct_player_info opponentInfo = this.playInfo.PlayerInfo;

        if (!string.IsNullOrEmpty(opponentInfo.UserIcon))
        {
            var headIcon = transform.Find("PlayerInfo/RightHeadImage/Mask/Image").GetComponent <Image>();
            StartCoroutine(Function.DownloadImage(headIcon, opponentInfo.UserIcon));
        }
        //加载玩法prefab
        play_data playData = PlayDataConfig.Instance.GetDataByID(this.playInfo.PlayId);

        UIManager.OpenUI(playData.PrefabPath, playUI, (uiObj) =>
        {
            playBase = uiObj.transform.GetComponent <PlayBase>();
            playBase.answerFinish = AnswerFinish;
        });
    }
Exemplo n.º 3
0
    public play_data GetDataByID(int id)
    {
        play_data retData = null;

        if (_dataDict.TryGetValue(id, out retData))
        {
            return(retData);
        }
        return(null);
    }
Exemplo n.º 4
0
 static int GetDataByID(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 2);
         PlayDataConfig obj  = (PlayDataConfig)ToLua.CheckObject <PlayDataConfig>(L, 1);
         int            arg0 = (int)LuaDLL.luaL_checknumber(L, 2);
         play_data      o    = obj.GetDataByID(arg0);
         ToLua.PushSealed(L, o);
         return(1);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Exemplo n.º 5
0
    // Use this for initialization
    void Start()
    {
        game_start = false;
        audSource  = GetComponent <AudioSource> ();

        moves_remain = 2;
        whosturn     = 0;
        instance     = this;
        //SetupBlankBoard(14, 10);
        for (int p = 0; p < 4; p++)
        {
            tiles_owned[p] = 0;
            for (int q = 0; q < 3; q++)
            {
                player_resource[p, q] = 0;
                player_income[p, q]   = 0;
            }
        }
    }
Exemplo n.º 6
0
 /// <summary>
 /// 设置界面状态
 /// </summary>
 /// <param name="_state">0.介绍阶段,1.游戏阶段</param>
 private void SetUIState(int _state)
 {
     this.state = _state;
     introUI.gameObject.SetActive(0 == this.state);
     playUI.gameObject.SetActive(1 == this.state);
     if (0 == this.state)
     {
         SetCountdownTime(this.playInfo.IntroEndTime);
         //设置玩法介绍image
         play_data playData = PlayDataConfig.Instance.GetDataByID(this.playInfo.PlayId);
         Function.SetImageSprite(introUI.Find("PlayIntro/Image").GetComponent <Image>(), playData.IntroIcon);
     }
     else
     {
         SetCountdownTime(this.playInfo.EndTime);
         //开始玩
         playBase.StartPlay();
     }
 }
Exemplo n.º 7
0
    private void Awake()
    {
        mContent3x3 = transform.Find("Content3x3");
        mContent4x4 = transform.Find("Content4x4");

        //获取所有色块
        for (int idx = 0; idx < mContent3x3.childCount; idx++)
        {
            blockID3x3[idx] = idx;
            Transform tmpBlock = mContent3x3.Find(idx.ToString());
            //先隐藏吧
            blockList3x3.Add(tmpBlock);
            //注册回调函数
            EventTrigger.Get(tmpBlock.gameObject).onClick = (obj) =>
            {
                ClickBlock(3, obj, blockList3x3.IndexOf(obj.transform));
            };
        }
        for (int idx = 0; idx < mContent4x4.childCount; idx++)
        {
            blockID4x4[idx] = idx;
            Transform tmpBlock = mContent4x4.Find(idx.ToString());
            //先隐藏吧
            blockList4x4.Add(tmpBlock);
            //注册回调函数
            EventTrigger.Get(tmpBlock.gameObject).onClick = (obj) =>
            {
                ClickBlock(4, obj, blockList4x4.IndexOf(obj.transform));
            };
        }

        //读取配置表数据
        playData = PlayDataConfig.Instance.GetDataByID(GetPlayID());
        //读取所有颜色
        allColor = new Color[playData.Param5.Count / 4];
        for (int i = 0; i < playData.Param5.Count; i += 4)
        {
            allColor[i / 4] = (new Color(playData.Param5[i], playData.Param5[i + 1], playData.Param5[i + 2], playData.Param5[i + 3]) / 255f);
        }
    }
Exemplo n.º 8
0
    private void Awake()
    {
        mMask    = transform.Find("Mask").gameObject;
        mContent = transform.Find("Content");

        //获取所有色块
        for (int idx = 0; idx < mContent.childCount; idx++)
        {
            Transform tmpBlock = mContent.Find(idx.ToString());
            //先隐藏吧
            tmpBlock.gameObject.SetActive(false);
            blockList.Add(tmpBlock);
            //注册回调函数
            EventTrigger.Get(tmpBlock.gameObject).onClick = (obj) =>
            {
                obj.transform.GetComponent <Flashing>().Play(() =>
                {
                    ClickBlock(obj, blockList.IndexOf(obj.transform));
                });
            };
        }
        //读取配置表数据
        playData = PlayDataConfig.Instance.GetDataByID(GetPlayID());
    }
Exemplo n.º 9
0
    public void RefreshUI(rep_message_start_ready readyInfo)
    {
        struct_player_info opponentInfo = readyInfo.PlayerInfo;

        Debug.Log("UIReady.RefreshUI readyInfo = " + readyInfo);
        //我的头像
        if (!string.IsNullOrEmpty(PlayerData.userIcon))
        {
            var headIcon = transform.Find("PlayerInfo/LeftHeadImage/Mask/Image").GetComponent <Image>();
            StartCoroutine(Function.DownloadImage(headIcon, PlayerData.userIcon));
        }
        //对手头像
        if (!string.IsNullOrEmpty(opponentInfo.UserIcon))
        {
            var headIcon = transform.Find("PlayerInfo/RightHeadImage/Mask/Image").GetComponent <Image>();
            StartCoroutine(Function.DownloadImage(headIcon, opponentInfo.UserIcon));
        }
        //倒计时
        float totalTime      = (float)(readyInfo.StartTime - Function.GetServerTime());
        Image countdownImage = transform.Find("Countdown/Bar").GetComponent <Image>();

        Scheduler.Instance.CreateScheduler("UIReady.Countdown", 0, 0, 0.01f, (param) =>
        {
            float lastTime            = (float)(readyInfo.StartTime - Function.GetServerTime());
            countdownImage.fillAmount = lastTime / totalTime;
            //Debug.Log("UIReady.Countdown lastTime = " + lastTime + " totalTime = " + totalTime);
            if (countdownImage.fillAmount <= 0)
            {
                Scheduler.Instance.Stop("UIReady.Countdown");
                //请求开始
                CommonRequest.ReqSatrtGame(readyInfo.Innings, (repMsg) => {
                    //关闭UI
                    //this.Close();
                });
            }
        });
        //第几回合
        transform.Find("Countdown/Text").GetComponent <Text>().text = Language.GetTextByKey(InningsTextKey[readyInfo.Innings]);
        //展示要随机的玩法
        playViewList.RegisterInitCallback((Transform obj, int index) =>
        {
            int playID = readyInfo.RandPlayId[index];
            //获取配置
            play_data playData = PlayDataConfig.Instance.GetDataByID(playID);
            //icon
            Function.SetImageSprite(obj.Find("Icon/Image").GetComponent <Image>(), playData.Icon);
            //名字
            obj.Find("Name").GetComponent <Text>().text = playData.Name;
        });
        //刷新列表
        playViewList.totalCount = readyInfo.RandPlayId.Count;
        playViewList.RefillCells();
        //随机选中玩法
        int       randCount = 0;
        Transform randRoot  = transform.Find("RandPlay/Viewport/Content");

        Scheduler.Instance.CreateScheduler("UIReady.RandPlay", 0, 0, 0.3f, (param) => {
            for (int idx = 0; idx < randRoot.childCount; idx++)
            {
                randRoot.GetChild(idx).Find("Icon/Choose").gameObject.SetActive(idx == randCount);
            }
            if (readyInfo.RandPlayId[randCount] == readyInfo.PlayId && readyInfo.StartTime - Function.GetServerTime() < 1.0)
            {
                //结束定时器
                Scheduler.Instance.Stop("UIReady.RandPlay");
                //播放一个放大效果
                ScaleTo scaleTo = randRoot.GetChild(randCount).Find("Icon").GetComponent <ScaleTo>();
                scaleTo.Play();
            }
            randCount = (randCount + 1) % readyInfo.RandPlayId.Count;
        });
    }
Exemplo n.º 10
0
    //刷新界面
    public void RefreshUI(rep_message_game_end _endInfo)
    {
        this.endInfo = _endInfo;
        //我的头像
        if (!string.IsNullOrEmpty(PlayerData.userIcon))
        {
            var headIcon = transform.Find("PlayerInfo/LeftHeadImage/Mask/Image").GetComponent <Image>();
            StartCoroutine(Function.DownloadImage(headIcon, PlayerData.userIcon));
        }
        //对手头像
        struct_player_info opponentInfo = this.endInfo.PlayerInfo;

        if (!string.IsNullOrEmpty(opponentInfo.UserIcon))
        {
            var headIcon = transform.Find("PlayerInfo/RightHeadImage/Mask/Image").GetComponent <Image>();
            StartCoroutine(Function.DownloadImage(headIcon, opponentInfo.UserIcon));
        }
        //名字
        transform.Find("PlayerInfo/LeftHeadImage/Name").GetComponent <Text>().text  = PlayerData.userName;
        transform.Find("PlayerInfo/RightHeadImage/Name").GetComponent <Text>().text = endInfo.PlayerInfo.UserName;

        //定时器依次展示各局分数
        float leftSum  = 0;
        float rightSum = 0;

        for (int i = 0; i < endInfo.LeftGrade.Count; i++)
        {
            //玩法名
            play_data playData = PlayDataConfig.Instance.GetDataByID(endInfo.PlayList[i]);
            transform.Find(string.Format("GradeList/{0}/Name", i)).GetComponent <Text>().text = playData.Name;

            leftSum  += endInfo.LeftGrade[i];
            rightSum += endInfo.RightGrade[i];
            transform.Find(string.Format("GradeList/{0}/LeftText", i)).GetComponent <Text>().text  = endInfo.LeftGrade[i].ToString();
            transform.Find(string.Format("GradeList/{0}/RightText", i)).GetComponent <Text>().text = endInfo.RightGrade[i].ToString();
            Scheduler.Instance.CreateScheduler("UIGameEnd.RefreshUI.ShowGrade." + i, i * 0.5f, 1, 0, (param) =>
            {
                int index        = (int)param;
                float inningsSum = endInfo.LeftGrade[index] + endInfo.RightGrade[index];
                //Image
                Image leftIamge       = transform.Find(string.Format("GradeList/{0}/Mask/LeftImage", index)).GetComponent <Image>();
                Image rightIamge      = transform.Find(string.Format("GradeList/{0}/Mask/RightImage", index)).GetComponent <Image>();
                leftIamge.fillAmount  = 0;
                rightIamge.fillAmount = 0;
                DOTween.To(() => leftIamge.fillAmount, (value) => leftIamge.fillAmount   = value, (0 == inningsSum) ? 0.5f : endInfo.LeftGrade[index] / inningsSum, 1f);
                DOTween.To(() => rightIamge.fillAmount, (value) => rightIamge.fillAmount = value, (0 == inningsSum) ? 0.5f : endInfo.RightGrade[index] / inningsSum, 1f);
            }, i);
        }
        //总分
        transform.Find(string.Format("GradeList/Sum/LeftText")).GetComponent <Text>().text  = leftSum.ToString();
        transform.Find(string.Format("GradeList/Sum/RightText")).GetComponent <Text>().text = rightSum.ToString();
        Image sumLeftIamge  = transform.Find(string.Format("GradeList/Sum/Mask/LeftImage")).GetComponent <Image>();
        Image sumRightIamge = transform.Find(string.Format("GradeList/Sum/Mask/RightImage")).GetComponent <Image>();

        sumLeftIamge.fillAmount  = 0;
        sumRightIamge.fillAmount = 0;
        float allSum = leftSum + rightSum;

        Scheduler.Instance.CreateScheduler("UIGameEnd.RefreshUI.ShowGrade.Sum", endInfo.LeftGrade.Count * 0.5f, 1, 0, (param) =>
        {
            DOTween.To(() => sumLeftIamge.fillAmount, (value) => sumLeftIamge.fillAmount   = value, (0 == allSum) ? 0.5f : leftSum / allSum, 1f);
            DOTween.To(() => sumRightIamge.fillAmount, (value) => sumRightIamge.fillAmount = value, (0 == allSum) ? 0.5f : rightSum / allSum, 1f);
        });
        //结果
        string resultStr   = "";
        Color  resultColor = Color.white;

        if (rightSum < leftSum)
        {
            resultColor = GameConst.Yellow;
            resultStr   = Language.GetTextByKey(10501);
        }
        else if (leftSum < rightSum)
        {
            resultColor = GameConst.Bule;
            resultStr   = Language.GetTextByKey(10502);
        }
        else
        {
            resultColor = GameConst.Gray;
            resultStr   = Language.GetTextByKey(10503);
        }
        Text resultText = transform.Find("PlayerInfo/Text").GetComponent <Text>();

        resultText.text  = resultStr;
        resultText.color = resultColor;
        //属性变化
        for (int i = 0; i < endInfo.AttributeOffset.Count; i++)
        {
            float     offset  = endInfo.AttributeOffset[i];
            Transform attrObj = transform.Find("Attribute/Layout/" + i);
            attrObj.Find("Down").gameObject.SetActive(offset < 0);
            attrObj.Find("Up").gameObject.SetActive(0 < offset);
            attrObj.Find("Keep").gameObject.SetActive(0 == offset);
        }
    }