/// <summary> /// 系统随机生成数据 /// </summary> /// <param name="number">生成的随机数位数</param> /// <returns></returns> private Dictionary <int, int> GetRandomNumber(int gameStage) { int randNum; StageConfigManager.StageConfig stageConfig = StageConfigManager.GetStageConfig(gameStage); Dictionary <int, int> dic = stageConfig.NumPoolDic; randomDic = GetRandomNum(stageConfig.Level, dic); return(randomDic); }
/// <summary> /// 游戏初始化 /// </summary> public void Apply(int gameStage) { StopAllCoroutines(); GameData.Instance.win = false; ShowStage(gameStage); GameData.Instance.GameStage = gameStage; //获取可选择数据池 StageConfigManager.StageConfig stageConfig = StageConfigManager.GetStageConfig(gameStage); if (stageConfig != null) { Dictionary <int, string> numIconPoolDic = new Dictionary <int, string>(stageConfig.numIconPoolDic); GameData.Instance.gameLv = stageConfig.Level; GameData.Instance.showColumn = stageConfig.Column; GameData.Instance.resultColumn = stageConfig.ResultColumn; GameData.Instance.lockNum = stageConfig.Lock; dragInputItemWidget.transform.localScale = new Vector3(stageConfig.InputItemScale, stageConfig.InputItemScale, 1); selectPoolWidget.transform.localScale = new Vector3(stageConfig.SelectItemScale, stageConfig.SelectItemScale, 1); theShowResultPart.transform.localScale = new Vector3(stageConfig.LightItemScale, stageConfig.LightItemScale, 1); Lock.SetActive(true); LockNumLabel.gameObject.SetActive(true); LockNumLabel.text = stageConfig.Lock.ToString(); StageNameLabel.text = stageConfig.Name; //刷新界面 RefreshPanel(numIconPoolDic); //获取系统生成的随机数据 randomDic = GetRandomNumber(gameStage); selectPoolWidget.gameObject.SetActive(false); selectPoolWidget.gameObject.SetActive(true); //显示输入框(老版) ShowInputNumRoot(stageConfig.Level); //显示倒计时 StartCoroutine(TimeSliping(stageConfig.TimeLong)); //加载模型 LoadingManager.Instance.LoadModelCameraPrefab(); LoadingManager.Instance.LoadModelPrefab("DarkHunter_B"); } else { return; } dragInputItemWidget.transform.GetComponent <UIGrid>().Reposition(); dragInputItemWidget.transform.GetComponent <UIGrid>().repositionNow = true; }
/// <summary> /// 显示当前选择结果 /// </summary> public void ShowCurResultItem() { StageConfigManager.StageConfig stageConfig = StageConfigManager.GetStageConfig(GameData.Instance.GameStage); Dictionary <int, string> numIconPoolDic = stageConfig.numIconPoolDic; for (int i = 1; i <= GameData.Instance.curResultItemDic.Count; i++) { foreach (var item in numIconPoolDic) { string[] str = item.Value.Split(':'); if (GameData.Instance.curResultItemDic[i] == int.Parse(str[0])) { GameObject go = Instantiate(DragInputItemTemplate); go.SetActive(true); go.transform.parent = resultItemWidget.transform; go.transform.localScale = new Vector3(0.2f, 0.2f, 0.2f); go.transform.Find("Label").gameObject.SetActive(true); go.transform.Find("icon").gameObject.SetActive(true); go.transform.Find("plusIcon").gameObject.SetActive(false); InputDragItem sc = go.GetComponent <InputDragItem>(); sc.interactable = false; sc.Apply(item.Value); //改变过的item标记出来 if (GameData.Instance.curResultItemDic[i] == GameData.Instance.changedItemOne || GameData.Instance.curResultItemDic[i] == GameData.Instance.changedItemTwo) { go.transform.Find("bg").GetComponent <UISprite>().spriteName = "ItemBack_Red"; go.transform.Find("effect").gameObject.SetActive(true); } else { go.transform.Find("effect").gameObject.SetActive(false); } } } resultItemWidget.GetComponent <UIGrid>().maxPerLine = GameData.Instance.resultColumn; } GameData.Instance.changedItemOne = 0; GameData.Instance.changedItemTwo = 0; }
/// <summary> /// 显示输入框 /// </summary> /// <param name="gameLv"></param> private void ShowInputNumRoot(int gameLv) { StageConfigManager.StageConfig stageConfig = StageConfigManager.GetStageConfig(GameData.Instance.GameStage); Dictionary <int, string> numIconPoolDic = stageConfig.numIconPoolDic; for (int i = 1; i <= gameLv; i++) { GameObject go = Instantiate(DragInputItemTemplate); go.name = "DragInputItem_" + i; go.SetActive(true); go.transform.parent = dragInputItemWidget.transform; go.transform.localScale = Vector3.one; go.transform.localPosition = Vector3.zero; inputList.Add(go); } dragInputItemWidget.transform.GetComponent <UIGrid>().maxPerLine = GameData.Instance.resultColumn; dragInputItemWidget.transform.GetComponent <UIGrid>().Reposition(); dragInputItemWidget.transform.GetComponent <UIGrid>().repositionNow = true; }
public void Apply(int stageNum) { Clear(); // ScrollViewRect.transform.localPosition = new Vector3(0, 0, 0); // ScrollViewRect.GetComponent<UIPanel>().clipOffset = new Vector3(0, 0, 0); for (int i = 1; i <= stageNum; i++) { StageConfigManager.StageConfig cfg = StageConfigManager.GetStageConfig(i); if (cfg != null) { /* GameObject go = Instantiate(StageInfoTemplate); * go.SetActive(true); * go.transform.parent = ItemListWidget.transform; * go.transform.localScale = Vector3.one; * go.transform.localPosition = Vector3.zero; * * StageInfoTemplate st = go.GetComponent<StageInfoTemplate>(); * st.Apply(cfg.ID,cfg.Icon); * * ItemListWidget.GetComponent<UIGrid>().repositionNow = true; * itemList.Add(go);*/ } else { return; } } int low = stageNum / 4; //每行显示4列 if (low >= 8) { int offsetLow = low - 7; //满屏显示8行 offsetLow += 1; Debug.LogError("offset" + offsetLow); //itemListMove = offsetLow * 200; //ItemListWidget.transform.localPosition += new Vector3(0, itemListMove, 0); isItemListMove = true; ScrollViewRect.transform.localPosition = new Vector3(0, itemListMove, 0); ScrollViewRect.GetComponent <UIPanel>().clipOffset = new Vector3(0, -itemListMove, 0); } }
/// <summary> /// 判断玩家输入的数据是否合法 /// </summary> /// <param name="inputDic"></param> /// <returns></returns> public bool CheckInputNumLegal(Dictionary <int, int> inputDic) { StageConfigManager.StageConfig cf = StageConfigManager.GetStageConfig(GameData.Instance.GameStage); //需要使用值拷贝而不是引用拷贝(坑!!要注意) Dictionary <int, int> checkDic = new Dictionary <int, int>(cf.NumPoolDic); foreach (var item in inputDic) { if (checkDic.ContainsValue(item.Value)) { checkDic.Remove(item.Value); } else { NGUITools.PlaySound(erroMusic, 0.1f); TipsManager.Instance.ShowTips("有重复数字哦!"); return(false); } } return(true); }