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();
     }
 }
Esempio n. 3
0
        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;
            }
        }
Esempio n. 4
0
        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 + "%";
        }