public void Start3() { thisIndex = -1; Language = 1; TotalName = ""; NumInfected = ""; isLoad = false; HuBeiPeople = 0; GlobalPeople = 0; GlobalDeadPeople = 0; GlobalCurePeople = 0; GlobalHeavyPeople = 0; GlobalSuspectedPeople = 0; //语言的初始化 XmlDocument SxmlDoc = new XmlDocument(); SxmlDoc.Load(Application.persistentDataPath + "/setting.set"); XmlElement SxmlNode = SxmlDoc.DocumentElement; foreach (XmlNode elements in SxmlNode) { if (elements == null) { continue; } if (elements.LocalName == "Language") { int.TryParse(elements.InnerText, out Language); } if (elements.LocalName == "SMode") { if (elements.InnerText == "Load") { isLoad = true; } } } Key = new List <string>(); TextInfor = new List <string>(); string LocalizationText = ((TextAsset)Resources.Load("Localization/" + Language.ToString() + "/Provinces")).text; string[] LocalizationArray = LocalizationText.Split('\n'); for (int l = 0; l < LocalizationArray.Length; l++) { string[] LocalArray = LocalizationArray[l].Split(':'); switch (LocalArray[0]) { case "Total": TotalName = LocalArray[1]; break; case "NumInfected": NumInfected = LocalArray[1]; break; case "NumDead": NumDead = LocalArray[1]; break; case "NumCure": NumCure = LocalArray[1]; break; case "NumHeavy": NumHeavy = LocalArray[1]; break; case "NumSuspected": NumSuspected = LocalArray[1]; break; default: if (LocalArray.Length == 2) { Key.Add(LocalArray[0]); TextInfor.Add(LocalArray[1]); } break; } } provincesName.text = TotalName; if (isLoad) { PPTransport = new List <int>(); IPTransport = new List <int>(); Population = new List <int>(); Medicine = new List <int>(); Death = new List <int>(); Cure = new List <int>(); XmlDocument xmlSave = new XmlDocument(); xmlSave.Load(Application.persistentDataPath + "/save/Save.save"); XmlElement xmlNodeS = xmlSave.DocumentElement; foreach (XmlNode elementsS in xmlNodeS) { if (elementsS == null) { continue; } switch (elementsS.LocalName) { case "PPTransport": if (elementsS.InnerText != "") { string[] finishAry = elementsS.InnerText.Split(','); for (int a = 0; a < finishAry.Length; a++) { int.TryParse(finishAry[a], out int bb); PPTransport.Add(bb); } } break; case "IPTransport": if (elementsS.InnerText != "") { string[] finishAry = elementsS.InnerText.Split(','); for (int a = 0; a < finishAry.Length; a++) { int.TryParse(finishAry[a], out int bb); IPTransport.Add(bb); } } break; case "Population": if (elementsS.InnerText != "") { string[] finishAry = elementsS.InnerText.Split(','); for (int a = 0; a < finishAry.Length; a++) { int.TryParse(finishAry[a], out int bb); Population.Add(bb); } } break; case "Medicine": if (elementsS.InnerText != "") { string[] finishAry = elementsS.InnerText.Split(','); for (int a = 0; a < finishAry.Length; a++) { int.TryParse(finishAry[a], out int bb); Medicine.Add(bb); } } break; case "Material": int.TryParse(elementsS.InnerText, out int b); Provinces[18].GetComponent <Scr_Provinces>().Material = b; break; case "Personnel": int.TryParse(elementsS.InnerText, out int c); Provinces[18].GetComponent <Scr_Provinces>().Personnel = c; break; case "Bed": int.TryParse(elementsS.InnerText, out int d); Provinces[18].GetComponent <Scr_Provinces>().Bed = d; break; case "Death": if (elementsS.InnerText != "") { string[] finishAry = elementsS.InnerText.Split(','); for (int a = 0; a < finishAry.Length; a++) { int.TryParse(finishAry[a], out int bb); Death.Add(bb); } } break; case "Cure": if (elementsS.InnerText != "") { string[] finishAry = elementsS.InnerText.Split(','); for (int a = 0; a < finishAry.Length; a++) { int.TryParse(finishAry[a], out int bb); Cure.Add(bb); } } break; default: break; } for (int i = 0; i < 35; i++) { if (elementsS.LocalName == "People" + (i + 1).ToString()) { if (elementsS.InnerText != "") { string[] finishAry = elementsS.InnerText.Split(','); for (int a = 0; a < colorNum; a++) { int.TryParse(finishAry[a], out int b); Provinces[a].GetComponent <Scr_Provinces>().People[i] = b; } } } } } for (int a = 0; a < colorNum; a++) { Scr_Provinces ScrCompent = Provinces[a].GetComponent <Scr_Provinces>(); ScrCompent.PPTransport = PPTransport[a]; ScrCompent.IPTransport = IPTransport[a]; ScrCompent.Population = Population[a]; ScrCompent.Medicine = Medicine[a]; ScrCompent.Death = Death[a]; ScrCompent.Cure = Cure[a]; } } for (int i = 0; i < Provinces.Count; i++) { Provinces[i].GetComponent <Scr_Provinces>().PeopleCheck(); GlobalPeople += Provinces[i].GetComponent <Scr_Provinces>().showTotalPeople; GlobalSuspectedPeople += Provinces[i].GetComponent <Scr_Provinces>().showSuspected; GlobalHeavyPeople += Provinces[i].GetComponent <Scr_Provinces>().Heavy; GlobalCurePeople += Provinces[i].GetComponent <Scr_Provinces>().Cure; GlobalDeadPeople += Provinces[i].GetComponent <Scr_Provinces>().Death; } InfectedGrid.transform.Find("Number").GetComponent <Text>().text = GlobalPeople.ToString(); DeadGrid.transform.Find("Number").GetComponent <Text>().text = GlobalDeadPeople.ToString(); CureGrid.transform.Find("Number").GetComponent <Text>().text = GlobalCurePeople.ToString(); HeavyGrid.transform.Find("Number").GetComponent <Text>().text = GlobalHeavyPeople.ToString(); SuspectedGrid.transform.Find("Number").GetComponent <Text>().text = GlobalSuspectedPeople.ToString(); InfectedGrid.transform.Find("Name").GetComponent <Text>().text = NumInfected; DeadGrid.transform.Find("Name").GetComponent <Text>().text = NumDead; CureGrid.transform.Find("Name").GetComponent <Text>().text = NumCure; HeavyGrid.transform.Find("Name").GetComponent <Text>().text = NumHeavy; SuspectedGrid.transform.Find("Name").GetComponent <Text>().text = NumSuspected; }
public void Start2() { int LoadOrder1 = LoadOrder; int LoadOrder2 = LoadOrder + 2; if (LoadOrder2 >= colorNum) { LoadOrder2 = colorNum; } for (int a = LoadOrder1; a < LoadOrder2; a++) { Provinces.Add((GameObject)Instantiate(prefab, transform.position, transform.rotation)); Provinces[a].transform.SetParent(gameObject.transform); Provinces[a].transform.name = nameS[a]; Scr_Provinces ScrCompent = Provinces[a].GetComponent <Scr_Provinces>(); Provinces[a].GetComponent <RectTransform>().anchoredPosition = new Vector2(0, 0); ScrCompent.provinceIndex = a; ScrCompent.provinceName = nameS[a]; ScrCompent.PPTransport = PPTransport[a]; ScrCompent.IPTransport = IPTransport[a]; ScrCompent.Population = Population[a]; ScrCompent.Medicine = Medicine[a]; ScrCompent.DIPTransport = DIPTransport; ScrCompent.DPopulation = DPopulation; ScrCompent.DPPTransport = DPPTransport; ScrCompent.DMedicine = DMedicine; ScrCompent.IncubationTurn = IncubationTurn; ScrCompent.MildTurn = MildTurn; ScrCompent.CureTurn = CureTurn; ScrCompent.HeavyTurn = HeavyTurn; // for (int i = 0; i < 35; i++) { ScrCompent.People.Add(0); } if (a == 18) { ScrCompent.People[0] = 50; ScrCompent.People[1] = 40; ScrCompent.People[2] = 30; ScrCompent.People[3] = 20; ScrCompent.People[4] = 10; ScrCompent.People[5] = 4; } else { ScrCompent.r0 -= 1; ScrCompent.People[0] = ScrCompent.PPTransport * 3; } // //Provinces[a].GetComponent<RectTransform>().sizeDelta = new Vector2(w, h); //Provinces[a].GetComponent<RectTransform>().position = new Vector2(w / 2, h / 2); Provinces[a].GetComponent <RectTransform>().position = new Vector2(12.405f, 10.245f); Provinces[a].GetComponent <SpriteRenderer>().sprite = Resources.Load("UI/Map/" + a.ToString(), typeof(Sprite)) as Sprite; Destroy(Provinces[a].GetComponent <PolygonCollider2D>()); Provinces[a].AddComponent <PolygonCollider2D>(); /* * var newv = Provinces[a].GetComponent<SpriteRenderer>().sprite.vertices; * for (int v = 0; v < newv.Length; v++) * { * newv[v] *= 0.5f; * } */ //Provinces[a].GetComponent<PolygonCollider2D>().SetPath(0, Provinces[a].GetComponent<SpriteRenderer>().sprite.vertices); /* * if (!Directory.Exists(Application.persistentDataPath + "/provinces")) * { * Directory.CreateDirectory(Application.persistentDataPath + "/provinces"); * } * string path = Application.persistentDataPath + "/provinces/" + a.ToString() + ".png"; * if (!File.Exists(path)) * { * * * col.Add(new Texture2D(w, h)); * Color32[] Col = new Color32[w * h]; * for (int i = 0; i < textureCol.Length; i++) * { * if (textureCol[i].Equals(colorList[a])) * { * Col[i] = Color.white; * } * * } * col[a].SetPixels32(Col); * col[a].Apply(); * var bytes = col[a].EncodeToPNG(); * * File.WriteAllBytes(path, bytes); * Provinces[a].GetComponent<SpriteRenderer>().sprite = Sprite.Create(col[a], new Rect(0, 0, col[a].width, col[a].height), new Vector2(0, 0)); * } * else * { * * Texture2D colTexture = new Texture2D(w, h); * FileStream files = new FileStream(path, FileMode.Open); * //新建比特流对象 * byte[] imgByte = new byte[files.Length]; * //将文件写入对应比特流对象 * files.Read(imgByte, 0, imgByte.Length); * //关闭文件 * files.Close(); * colTexture.LoadImage(imgByte); * Provinces[a].GetComponent<SpriteRenderer>().sprite = Sprite.Create(colTexture, new Rect(0, 0, colTexture.width, colTexture.height), new Vector2(0, 0)); * * * } */ } LoadOrder += 2; if (LoadOrder >= colorNum) { LoadOrder = -1; } }
// Update is called once per frame void Update() {// + CCamera.transform.position.x * MoveSpeed * 20 //Debug.Log(Screen.width + "," + Screen.height); if (!LoadControl.StartControl) { return; } if (Input.GetMouseButtonDown(0)) { bool hasHit = false; RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero); if (hit.collider != null) { Scr_Provinces province = hit.collider.gameObject.GetComponent <Scr_Provinces>(); int a = province.provinceIndex; hasHit = true; provincesName.text = nameS[a]; for (int l = 0; l < Key.Count; l++) { if (Key[l] == nameS[a]) { provincesName.text = TextInfor[l];; break; } } thisIndex = a; province.isMe = true; InfectedGrid.transform.Find("Number").GetComponent <Text>().text = province.showTotalPeople.ToString(); DeadGrid.transform.Find("Number").GetComponent <Text>().text = province.Death.ToString(); CureGrid.transform.Find("Number").GetComponent <Text>().text = province.Cure.ToString(); HeavyGrid.transform.Find("Number").GetComponent <Text>().text = province.Heavy.ToString(); SuspectedGrid.transform.Find("Number").GetComponent <Text>().text = province.showSuspected.ToString(); } if (!hasHit) { provincesName.text = TotalName; thisIndex = -1; InfectedGrid.transform.Find("Number").GetComponent <Text>().text = GlobalPeople.ToString(); DeadGrid.transform.Find("Number").GetComponent <Text>().text = GlobalDeadPeople.ToString(); CureGrid.transform.Find("Number").GetComponent <Text>().text = GlobalCurePeople.ToString(); HeavyGrid.transform.Find("Number").GetComponent <Text>().text = GlobalHeavyPeople.ToString(); SuspectedGrid.transform.Find("Number").GetComponent <Text>().text = GlobalSuspectedPeople.ToString(); } } return; switch (((float)Screen.width / (float)Screen.height)) { case (16f / 9f): correctX = 7.00386f * Mathf.Pow(10, -7) * Mathf.Pow(Screen.width, 2) - 0.00299f * Screen.width + 4.10058f; correctY = 2.19997f * Mathf.Pow(10, -6) * Mathf.Pow(Screen.height, 2) - 0.00530f * Screen.height + 4.10270f; break; case (5f / 4f): if (Screen.width == 800) { correctX = 1.576f; correctY = 1.585f; } if (Screen.width == 1280) { correctX = 0.9883f; correctY = 0.9894f; } break; case (4f / 3f): correctX = -8.27256f * Mathf.Pow(10, -4) * Screen.width + 2.14126f; correctY = -0.00110f * Screen.height + 2.14183f; break; case (16f / 10f): correctX = 4.25843f * Mathf.Pow(10, -7) * Mathf.Pow(Screen.width, 2) - 0.00202f * Screen.width + 3.14612f; correctY = 1.02948f * Mathf.Pow(10, -6) * Mathf.Pow(Screen.height, 2) - 0.00310f * Screen.height + 3.08079f; break; default: break; } //NOTES Mar, 8th, 2020 // https://docs.unity3d.com/ScriptReference/Input.GetTouch.html // https://docs.unity3d.com/Manual/CameraRays.html //IOS input here #if UNITY_IOS #endif //PC input here #if UNITY_STANDALONE_WIN #endif Vector2 mouseP = new Vector2((int)((Input.mousePosition.x - Screen.width / 2) * correctX * Camera.main.orthographicSize / 5 + CCamera.transform.position.x * MoveSpeed * 20), (int)((Input.mousePosition.y - Screen.height / 2) * correctY * Camera.main.orthographicSize / 5 + CCamera.transform.position.y * MoveSpeed * 20));//获得鼠标的坐标 //Vector2 mouseP = new Vector2((int)((Input.mousePosition.x) * correctX * Camera.main.orthographicSize / 5 + CCamera.transform.position.x * MoveSpeed * 20), (int)((Input.mousePosition.y) * correctY * Camera.main.orthographicSize / 5 + CCamera.transform.position.y * MoveSpeed * 20));//获得鼠标的坐标 if (Input.GetMouseButtonDown(0)) { /* * float corX = 591 / mouseP.x; * float corY = 279 / mouseP.y; * Debug.Log(string.Format("{0:F6}", corX) + "," + string.Format("{0:F6}", corY)); */ //Debug.Log(mouseP); bool hasHit = false; if ((mouseP.x >= 0 && mouseP.x < w) && (mouseP.y >= 0 && mouseP.y < h)) { Color32[] textureCol = map.GetPixels32();; for (int a = 0; a < colorNum; a++) { if (textureCol[(int)(mouseP.x + mouseP.y * w)].Equals(colorList[a])) { hasHit = true; provincesName.text = nameS[a]; for (int l = 0; l < Key.Count; l++) { if (Key[l] == nameS[a]) { provincesName.text = TextInfor[l];; break; } } thisIndex = a; Provinces[a].GetComponent <Scr_Provinces>().isMe = true; InfectedGrid.transform.Find("Number").GetComponent <Text>().text = Provinces[thisIndex].GetComponent <Scr_Provinces>().showTotalPeople.ToString(); DeadGrid.transform.Find("Number").GetComponent <Text>().text = Provinces[thisIndex].GetComponent <Scr_Provinces>().Death.ToString(); CureGrid.transform.Find("Number").GetComponent <Text>().text = Provinces[thisIndex].GetComponent <Scr_Provinces>().Cure.ToString(); HeavyGrid.transform.Find("Number").GetComponent <Text>().text = Provinces[thisIndex].GetComponent <Scr_Provinces>().Heavy.ToString(); SuspectedGrid.transform.Find("Number").GetComponent <Text>().text = Provinces[thisIndex].GetComponent <Scr_Provinces>().showSuspected.ToString(); } } } if (!hasHit) { provincesName.text = TotalName; thisIndex = -1; InfectedGrid.transform.Find("Number").GetComponent <Text>().text = GlobalPeople.ToString(); DeadGrid.transform.Find("Number").GetComponent <Text>().text = GlobalDeadPeople.ToString(); CureGrid.transform.Find("Number").GetComponent <Text>().text = GlobalCurePeople.ToString(); HeavyGrid.transform.Find("Number").GetComponent <Text>().text = GlobalHeavyPeople.ToString(); SuspectedGrid.transform.Find("Number").GetComponent <Text>().text = GlobalSuspectedPeople.ToString(); } } }
public void LocalSave() { string SaveString1 = ""; string SaveString2 = ""; string SaveString3 = ""; string SaveString4 = ""; string SaveString5 = ""; string SaveString6 = ""; for (int a = 0; a < colorNum; a++) { Scr_Provinces ScrCompent = Provinces[a].GetComponent <Scr_Provinces>(); if (SaveString1.Length == 0) { SaveString1 = ScrCompent.PPTransport.ToString(); SaveString2 = ScrCompent.IPTransport.ToString(); SaveString3 = ScrCompent.Population.ToString(); SaveString4 = ScrCompent.Medicine.ToString(); SaveString5 = ScrCompent.Death.ToString(); SaveString6 = ScrCompent.Cure.ToString(); } else { SaveString1 += "," + ScrCompent.PPTransport.ToString(); SaveString2 += "," + ScrCompent.IPTransport.ToString(); SaveString3 += "," + ScrCompent.Population.ToString(); SaveString4 += "," + ScrCompent.Medicine.ToString(); SaveString5 += "," + ScrCompent.Death.ToString(); SaveString6 += "," + ScrCompent.Cure.ToString(); } } XmlDocument xmlSave = new XmlDocument(); xmlSave.Load(Application.persistentDataPath + "/save/Save.save"); XmlElement xmlNodeS = xmlSave.DocumentElement; foreach (XmlNode elementsS in xmlNodeS) { if (elementsS == null) { continue; } switch (elementsS.LocalName) { case "PPTransport": elementsS.InnerText = SaveString1; break; case "IPTransport": elementsS.InnerText = SaveString2; break; case "Population": elementsS.InnerText = SaveString3; break; case "Medicine": elementsS.InnerText = SaveString4; break; case "Death": elementsS.InnerText = SaveString5; break; case "Cure": elementsS.InnerText = SaveString6; break; case "Material": elementsS.InnerText = Provinces[18].GetComponent <Scr_Provinces>().Material.ToString(); break; case "Personnel": elementsS.InnerText = Provinces[18].GetComponent <Scr_Provinces>().Personnel.ToString(); break; case "Bed": elementsS.InnerText = Provinces[18].GetComponent <Scr_Provinces>().Bed.ToString(); break; } for (int i = 0; i < 35; i++) { string People = ""; if (elementsS.LocalName == "People" + (i + 1).ToString()) { for (int a = 0; a < colorNum; a++) { if (People.Length == 0) { People = Provinces[a].GetComponent <Scr_Provinces>().People[i].ToString(); } else { People += "," + Provinces[a].GetComponent <Scr_Provinces>().People[i].ToString(); } } elementsS.InnerText = People; } } } xmlSave.Save(Application.persistentDataPath + "/save/Save.save"); }