Exemplo n.º 1
0
    /// <summary>
    /// Zapocinje rotiranje jednog tocka. Rotacija se odvija u 2 etape.
    /// Etapa 1 - tocak obrne nekoliko krugova, sve do izabranog simbola, zaustavlja se na tom simbolu, trajanje je rotationTime
    /// Etapa 2 - "pingpong" animacija na kraju rotacije, iluzija zaustavljanja tocka
    /// Izabrani simbol dolazi iz npr. Game Managera
    /// </summary>
    /// <param name="target">naziv simbola</param>
    /// <param name="rotTime">vreme za koje ce vreme rotacije tocka biti 'promuckano'</param>
    public void StartRoll(GameManager.Symbols target, float rotTime)
    {
        audioRoll.Play();
        audioRoll.DOPitch(1.9f, 3);

        /** hocemo lepu rotaciju **/
        rotationTime  = 0;                               // ponisti sabranu rotaciju
        rotationTime  = rotationTimeTemp + rotTime;      // saberi original sa ulazom
        rotationSpeed = 0;                               // iskljuci rotaciju glavnog tocka

        float ang = (float)symbolPosition[target];       // ugao koji trazimo i na koji treba postaviti tocak je unapred definisan u hash tabli

        int randomCircle = Random.Range(2, 4);           // random broj krugova za koje ce tocak biti okrenut

        ang = ang + randomCircle * 360;                  // na ugao treba dodati broj krugova...

        // Rotiraj, a na kraju pozovi MovementDone() zbog 'ping-ping' efekta na kraju animacije
        // Metodi MovementDone() se prosledjuje i ugao na koji treba da se vrati
        iTween.RotateTo(gameObject, iTween.Hash(
                            "z", -ang,
                            "time", rotationTime,
                            "easetype", iTween.EaseType.easeInCubic,
                            "oncomplete", "MovementDone",
                            "oncompleteparams", ang
                            ));
    }
Exemplo n.º 2
0
Arquivo: FX.cs Projeto: besomuk/Slot
    /// <summary>
    /// Animacija teksture simbola na jednom face-u 3d modela.
    /// </summary>
    /// <param name="wheelNumber">Broj tocka na kom se radi animacija. Ovo je vazno zato sto tockovi imaju razlicit raspored simbola</param>
    /// <param name="symbol">Naziv simbola koji se animira</param>
    /// <param name="wheel">GO tocka koji se animira</param>
    public void AnimateTexture(int wheelNumber, GameManager.Symbols symbol, GameObject wheel)
    {
        Renderer rd = wheel.GetComponent <Renderer>();
        //rd.materials[0].DOTiling( new Vector2( 2f, 2f ), 1 );
        //rd.materials[0].DOOffset( new Vector2( -0.2f, -0.5f ), 1 );

        /** name svakom tocku je raspored tekstura razlicit...zato na osnovu teksture, zakljuci koji je to broj
        ** Animiram i offset jer u suprotnom tekstura bezi u cosak
        ** */
        Vector2 tilingVectorStart = new Vector2(1f, 1f);                // pocetna vrednost za skaliranje
        Vector2 offsetVectorStart = new Vector2(0.1f, 0.0f);            // pocetna vrednost za ofset
        Vector2 tilingVector      = new Vector2(2f, 2f);                // krajnja vrednost za skaliranje
        Vector2 offsetVector      = new Vector2(-0.2f, -0.5f);          // krajnja vrednost za offset

        int   textureID = 0;
        float time      = 0.3f;

        /** Pronadji ID, tj. redosled teksture u objektu tocka ( vidi se iz Inspektora ) **/
        if (wheelNumber == 0)
        {
            switch (symbol)
            {
            case GameManager.Symbols.DIAMOND: textureID = 0; break;

            case GameManager.Symbols.CHERRY: textureID = 1; break;

            case GameManager.Symbols.BAR: textureID = 2; break;

            case GameManager.Symbols.SEVEN: textureID = 3; break;

            case GameManager.Symbols.PLUM: textureID = 4; break;

            case GameManager.Symbols.ORANGE: textureID = 5; break;

            case GameManager.Symbols.LEMON: textureID = 6; break;
            }
        }

        if (wheelNumber == 1)
        {
            switch (symbol)
            {
            case GameManager.Symbols.PLUM: textureID = 0; break;

            case GameManager.Symbols.SEVEN: textureID = 1; break;

            case GameManager.Symbols.BAR: textureID = 2; break;

            case GameManager.Symbols.ORANGE: textureID = 3; break;

            case GameManager.Symbols.CHERRY: textureID = 4; break;

            case GameManager.Symbols.DIAMOND: textureID = 5; break;

            case GameManager.Symbols.LEMON: textureID = 6; break;
            }
        }

        if (wheelNumber == 2)
        {
            switch (symbol)
            {
            case GameManager.Symbols.ORANGE: textureID = 0; break;

            case GameManager.Symbols.PLUM: textureID = 1; break;

            case GameManager.Symbols.BAR: textureID = 2; break;

            case GameManager.Symbols.LEMON: textureID = 3; break;

            case GameManager.Symbols.SEVEN: textureID = 4; break;

            case GameManager.Symbols.DIAMOND: textureID = 5; break;

            case GameManager.Symbols.CHERRY: textureID = 6; break;
            }
        }

        if (wheelNumber == 3)
        {
            switch (symbol)
            {
            case GameManager.Symbols.DIAMOND: textureID = 0; break;

            case GameManager.Symbols.ORANGE: textureID = 1; break;

            case GameManager.Symbols.BAR: textureID = 2; break;

            case GameManager.Symbols.LEMON: textureID = 3; break;

            case GameManager.Symbols.SEVEN: textureID = 4; break;

            case GameManager.Symbols.CHERRY: textureID = 5; break;

            case GameManager.Symbols.PLUM: textureID = 6; break;
            }
        }

        if (wheelNumber == 4)
        {
            switch (symbol)
            {
            case GameManager.Symbols.CHERRY: textureID = 0; break;

            case GameManager.Symbols.LEMON: textureID = 1; break;

            case GameManager.Symbols.BAR: textureID = 2; break;

            case GameManager.Symbols.SEVEN: textureID = 3; break;

            case GameManager.Symbols.DIAMOND: textureID = 4; break;

            case GameManager.Symbols.ORANGE: textureID = 5; break;

            case GameManager.Symbols.PLUM: textureID = 6; break;
            }
        }

        /** uradi animaciju **/
        Sequence animateSymbol = DOTween.Sequence();

        animateSymbol.Append(rd.materials[textureID].DOTiling(tilingVector, time));
        animateSymbol.Join(rd.materials[textureID].DOOffset(offsetVector, time));
        animateSymbol.Append(rd.materials[textureID].DOTiling(tilingVectorStart, time));
        animateSymbol.Join(rd.materials[textureID].DOOffset(offsetVectorStart, time));
        animateSymbol.SetLoops(5);
        animateSymbol.Play();
    }