void Update() { Polygon2D cameraPolygon = Polygon2D.CreateFromCamera(Camera.main); cameraPolygon = cameraPolygon.ToRotation(Camera.main.transform.rotation.eulerAngles.z * Mathf.Deg2Rad); cameraPolygon = cameraPolygon.ToOffset(new Vector2D(Camera.main.transform.position)); foreach (Sliceable2D slicer in Sliceable2D.GetListCopy()) { if (Math2D.PolyCollidePoly(slicer.shape.GetWorld(), cameraPolygon) == false) { if (slicer.enabled == true) { lives--; if (lives >= 0) { SpriteRenderer sr = livesObjects[lives].GetComponent <SpriteRenderer>(); sr.color = Color.white; } else { Debug.Log("lose"); } } Destroy(slicer.gameObject); } } scoreText.text = score.ToString(); }
public void UpdateCurrentArea() { currentArea = 0f; foreach (Sliceable2D slicer in Sliceable2D.GetListCopy()) { currentArea += slicer.shape.GetLocal().GetArea(); } }
void Update() { piecesCount = Sliceable2D.GetListCount(); slicesText.text = "Slices: " + slicesCount + " / " + Levels[currentLevelID].allowedSlices; piecesText.text = "Pieces: " + piecesCount + " / " + Levels[currentLevelID].allowedPieces; Vector3 pos = Camera.main.transform.position; pos.x = pos.x * 0.95f + (float)(currentLevelID * 50f) * 0.05f; Camera.main.transform.position = pos; if (Sliceable2D.GetList().Count < 1) { return; } if (slicesCount <= Levels[currentLevelID].allowedSlices && piecesCount == Levels[currentLevelID].allowedPieces) { foreach (Sliceable2D slicer in Sliceable2D.GetListCopy()) { slicer.gameObject.AddComponent <DivideGreenFade>(); slicer.enabled = false; garbage.Add(slicer.gameObject); } DivideUIFade.instance.state = true; DivideUIFade.instance.menuObjects[0].SetActive(false); DivideUIFade.instance.menuObjects[1].SetActive(false); DivideUIFade.instance.menuObjects[2].SetActive(true); //currentLevelID++; //Levels[currentLevelID].level.SetActive(true); //slicesCount = 0; } else if (slicesCount > Levels[currentLevelID].allowedSlices) { foreach (Sliceable2D slicer in Sliceable2D.GetListCopy()) { DivideGreenFade fade = slicer.gameObject.AddComponent <DivideGreenFade>(); fade.fadeTyp = DivideGreenFade.FadeType.Red; slicer.enabled = false; garbage.Add(slicer.gameObject); } DivideUIFade.instance.menuObjects[0].SetActive(false); DivideUIFade.instance.menuObjects[1].SetActive(true); DivideUIFade.instance.menuObjects[2].SetActive(false); DivideUIFade.instance.state = true; } }
void Slice() { Polygon2D.defaultCircleVerticesCount = 15; Polygon2D bombPoly = Polygon2DList.CreateFromGameObject(sliceArea.gameObject)[0]; Polygon2D slicePolygon = bombPoly.ToWorldSpace(sliceArea.gameObject.transform); Polygon2D slicePolygonDestroy = bombPoly.ToScale(new Vector2(1.05f, 1.05f)).ToWorldSpace(sliceArea.gameObject.transform); foreach (Sliceable2D id in Sliceable2D.GetListCopy()) { Slice2D result = Slicer2D.API.PolygonSlice(id.shape.GetWorld(), slicePolygon); if (result.GetPolygons().Count > 0) { foreach (Polygon2D p in new List <Polygon2D>(result.GetPolygons())) { if (slicePolygonDestroy.PolyInPoly(p) == true) { //result.GetPolygons().Remove (p); } } if (result.GetPolygons().Count > 0) { List <GameObject> gList = id.PerformResult(result.GetPolygons(), result); SliceParticles(gList, result, slicePolygonDestroy); } else { // Polygon is Destroyed!!! Destroy(id.gameObject); } } } Polygon2D.defaultCircleVerticesCount = 25; // Destroy(this); }
void Update() { Polygon2D cameraPolygon = Polygon2D.CreateFromCamera(Camera.main); cameraPolygon = cameraPolygon.ToRotation(Camera.main.transform.rotation.eulerAngles.z * Mathf.Deg2Rad); cameraPolygon = cameraPolygon.ToOffset(new Vector2D(Camera.main.transform.position)); foreach (Sliceable2D slicer in Sliceable2D.GetListCopy()) { if (Math2D.PolyCollidePoly(slicer.shape.GetWorld(), cameraPolygon) == false) { Destroy(slicer.gameObject); } } UpdateCurrentArea(); int percent = (int)((currentArea / startingArea) * 100); percentText.text = "Left: " + percent + "%"; }