Exemplo n.º 1
0
    /// <summary>
    /// Method to shoot the first dot and moving the other. This method check if the list of dots to shoot is empty or not. If the list is empty, this method triggered the success for this level.
    /// </summary>
    void ShootDot(DotManager_FreeShot d)
    {
        StopCoroutine("PositioningDots");
        StopCoroutine("MoveStartPositionDot");


        for (int i = 0; i < Dots.Count; i++)
        {
            Dots [i].transform.DOKill();
        }


        for (int i = 0; i < Dots.Count; i++)
        {
            if (!Dots[i].isMoving)
            {
                Dots [i].transform.position = new Vector3(0, -GetPositionYTarget() + (-i - 1) * sizeDot, Dots [i].transform.position.z);
            }
        }

        PlaySoundBeep();

        Dots.Remove(d);

        if (this.lastShoots == null)
        {
            this.lastShoots = new List <DotManager_FreeShot> ();
        }

        this.lastShoots.Add(d);


        Vector3 target = new Vector3(d.transform.position.x, SpriteCircle.position.y - 1, d.transform.position.z);

        d.transform.position = new Vector3(0, -GetPositionYTarget() + (-0 - 1) * sizeDot, d.transform.position.z);

        d.isMoving = true;



        d.Shoot();


        for (int i = 0; i < Dots.Count; i++)
        {
            if (sizeDot == 0)
            {
                Debug.Log("!!!!!! GET SIZEDOT ( must be done just one time only)");
                sizeDot = Dots [0].DotSprite.bounds.size.x * 1.1f;
            }


            if (!Dots[i].isMoving)
            {
                Dots [i].transform.DOMoveY(-GetPositionYTarget() + (-i - 1) * sizeDot, 0.3f)
                .OnComplete(() => {
                });
            }
        }
    }
Exemplo n.º 2
0
    void CreateDotOnCircle()
    {
        canShoot = false;

        Transform  prefab = this.DotPrefab;
        Vector3    pos    = new Vector3(0, -positionTouchBorder, -2);
        Quaternion rot    = prefab.rotation;
        Transform  parent = container;


        for (int i = 0; i < numberDotsOnCircle; i++)
        {
            containerParent.transform.rotation = Quaternion.Euler(new Vector3(0, 0, ((float)i) * 360f / numberDotsOnCircle));

            Transform t = Instantiate(prefab) as Transform;
            t.position = pos;
            t.rotation = rot;
            t.parent   = parent;

            DotManager_FreeShot dm = t.GetComponent <DotManager_FreeShot> ();

            dm.ActivateTrail();
        }

        SmoothDecal();
    }
Exemplo n.º 3
0
    /// <summary>
    /// To anim in and out the rotating dots
    /// </summary>
    IEnumerator SmoothDecalRoutine(DotManager_FreeShot d)
    {
        bool goIn = true;

        float distance = Vector3.Distance(d.transform.position, containerParent.transform.position);

        while (true)
        {
            if (d == null)
            {
                break;
            }

            if (goIn)
            {
                d.transform.localPosition *= 0.99f;
            }
            else
            {
                d.transform.localPosition *= 1.01f;
            }


            if (goIn && Vector3.Distance(d.transform.position, containerParent.transform.position) < distance / 2f)
            {
                goIn = false;
                yield return(new WaitForSeconds(((10 - rotateCircleDelay) + numberDotsOnCircle) / 2));
            }
            if (!goIn && Vector3.Distance(d.transform.position, containerParent.transform.position) > distance)
            {
                goIn = true;
                yield return(new WaitForSeconds(((10 - rotateCircleDelay) + numberDotsOnCircle) / 4));
            }

            yield return(new WaitForEndOfFrame());

            if (d == null)
            {
                break;
            }
        }
    }
Exemplo n.º 4
0
    void CreateListDots()
    {
        Dots = new List <DotManager_FreeShot>();

        for (int i = 0; i < numberDotsToCreate; i++)
        {
            var go = Instantiate(this.DotPrefab) as Transform;
            go.parent = transform;

            DotManager_FreeShot dm = go.GetComponent <DotManager_FreeShot> ();


            if (sizeDot == 0)
            {
                sizeDot = this.DotPrefab.GetComponent <DotManager_FreeShot> ().DotSprite.bounds.size.x * 1.1f;
            }


            Vector3 target = new Vector3(0, -GetPositionYTarget() + (-i - 1) * sizeDot, dm.transform.position.z);
            dm.transform.position = target;

            Dots.Add(dm);
        }
    }