void MakeBackground()
    {
        float thickness       = 25f;
        float distanceBetween = 10f;
        float borderWidth     = Futile.screen.width;
        float borderHeight    = Futile.screen.height;

        TweenFlow   flow   = new TweenFlow();
        TweenConfig config = new TweenConfig()
                             .floatProp("alpha", 0.15f);
        float delayBetweenTweenStarts = 0.2f;

        for (int i = 0; borderWidth > 0 && borderHeight > 0; i++)
        {
            TBorderLayer layer = new TBorderLayer(borderWidth, borderHeight, 25f, new Color(0.75f, 0.2f, 0.2f, 1.0f));
            layer.x     = (distanceBetween + thickness) * i;
            layer.y     = (distanceBetween + thickness) * i;
            layer.alpha = 0.0f;
            AddChild(layer);
            borderWidth  = borderWidth - distanceBetween * 2f - thickness * 2f;
            borderHeight = borderHeight - distanceBetween * 2f - thickness * 2f;
            flow.insert(delayBetweenTweenStarts * i, new Tween(layer, 0.3f, config));
        }

        Go.addTween(flow);
        flow.play();
    }
    void AnimateLettersIn(List <FLabel> letters,
                          float finalZero,
                          float yPosition,
                          float durationPerLetter,
                          float overlapBetweenLetterFlyins,
                          float extraRotationAmount,
                          System.Action <AbstractTween> onCompleteFunction)
    {
        if (overlapBetweenLetterFlyins > durationPerLetter)
        {
            Debug.Log("overlap can't be greater than duration!");
            return;
        }

        float horizontalDivision = (Futile.screen.width - finalZero * 2) / (letters.Count + 1);

        TweenFlow flow = new TweenFlow();

        for (int i = 0; i < letters.Count; i++)
        {
            TweenChain chain = TweenChainForLetter(letters[i], durationPerLetter, finalZero + horizontalDivision * (i + 1), yPosition, extraRotationAmount);

            flow.insert((durationPerLetter - overlapBetweenLetterFlyins) * i, chain);
        }

        if (onCompleteFunction != null)
        {
            flow.setOnCompleteHandler(onCompleteFunction);
        }
        Go.addTween(flow);
        flow.play();
    }
Exemple #3
0
    public void Destroy()
    {
        TweenConfig alphaTweenConfig = new TweenConfig();

        alphaTweenConfig.addTweenProperty(new FloatTweenProperty("alpha", 0.0f, false));

        TweenConfig scaleTweenConfig = new TweenConfig();

        scaleTweenConfig.addTweenProperty(new FloatTweenProperty("scale", 20, false));

        Tween alphaTween = new Tween(this, 0.3f, alphaTweenConfig);
        Tween scaleTween = new Tween(this, 0.3f, scaleTweenConfig);

        TweenFlow tweenFlow = new TweenFlow();

        tweenFlow.insert(0.0f, alphaTween);
        tweenFlow.insert(0.0f, scaleTween);
        tweenFlow.setOnCompleteHandler(DoneDestroying);
        tweenFlow.play();
    }
Exemple #4
0
    public void Destroy()
    {
        TweenConfig alphaTweenConfig = new TweenConfig();
        alphaTweenConfig.addTweenProperty(new FloatTweenProperty("alpha", 0.0f, false));

        TweenConfig scaleTweenConfig = new TweenConfig();
        scaleTweenConfig.addTweenProperty(new FloatTweenProperty("scale", 20, false));

        Tween alphaTween = new Tween(this, 0.3f, alphaTweenConfig);
        Tween scaleTween = new Tween(this, 0.3f, scaleTweenConfig);

        TweenFlow tweenFlow = new TweenFlow();
        tweenFlow.insert(0.0f, alphaTween);
        tweenFlow.insert(0.0f, scaleTween);
        tweenFlow.setOnCompleteHandler(DoneDestroying);
        tweenFlow.play();
    }
    void AnimateLettersIn(List<FLabel> letters,
		float finalZero,
		float yPosition,
		float durationPerLetter,
		float overlapBetweenLetterFlyins,
		float extraRotationAmount,
		System.Action<AbstractTween> onCompleteFunction)
    {
        if (overlapBetweenLetterFlyins > durationPerLetter) {
            Debug.Log("overlap can't be greater than duration!");
            return;
        }

        float horizontalDivision = (Futile.screen.width - finalZero * 2) / (letters.Count + 1);

        TweenFlow flow = new TweenFlow();

        for (int i = 0; i < letters.Count; i++) {
            TweenChain chain = TweenChainForLetter(letters[i], durationPerLetter, finalZero + horizontalDivision * (i + 1), yPosition, extraRotationAmount);

            flow.insert((durationPerLetter - overlapBetweenLetterFlyins) * i, chain);
        }

        if (onCompleteFunction != null) flow.setOnCompleteHandler(onCompleteFunction);
        Go.addTween(flow);
        flow.play();
    }
Exemple #6
0
    public void LevelEnded()
    {
        currentLevel++;

        PauseAllCircles();

        gameManager.gameState = GameState.Transitioning;

        ExecuteDelayedAction(1.0f, () =>
            {
                if (currentLevel == levels.Length)
                {
                    gameManager.gameState = GameState.Ended;

                    TweenFlow fadeOutFlow = new TweenFlow();

                    foreach (GameObject circle in GameObject.FindGameObjectsWithTag("Circle"))
                    {
                        Tween fadeOutTween = new Tween(circle.transform, transitionHalfTime, new TweenConfig().scale(0).setEaseType(EaseType.Linear));
                        fadeOutFlow.insert(0, fadeOutTween);
                    }

                    fadeOutFlow.setOnCompleteHandler((a) =>
                    {
                        ClearLevel();

                        TweenFlow fadeInFlow = new TweenFlow();

                        gameFinishedObject.SetActive(true);
                        Vector3 origScale = gameFinishedObject.transform.localScale;

                        gameFinishedObject.transform.localScale = Vector3.zero;

                        Tween fadeInTween = new Tween(gameFinishedObject.transform, transitionHalfTime, new TweenConfig().scale(origScale).setEaseType(EaseType.QuadIn));

                        fadeInFlow.insert(0, fadeInTween);

                        fadeInFlow.setOnCompleteHandler((aaa) =>
                        {
                            ExecuteDelayedAction(2.0f, () =>
                            {
                                GameObject.Find("PageManager").GetComponent<PageManager>().GoToPage(GamePage.MainMenu);
                            });
                        });

                        fadeInFlow.play();
                    }
                    );

                    gameManager.gameState = GameState.Transitioning;
                    fadeOutFlow.play();
                }
                else
                {
                    SwitchToLevel(currentLevel);
                }
            }
        );
    }
Exemple #7
0
    private void SwitchToLevel(int numLevel)
    {
        GameObject[] circles = GameObject.FindGameObjectsWithTag("Circle");

        gameManager.gameState = GameState.Transitioning;

        if (circles.Length == 0)
        {
            FadeInLevel(numLevel);
        }
        else
        {
            TweenFlow fadeOutFlow = new TweenFlow();

            foreach (GameObject circle in circles)
            {
                Tween fadeOutTween = new Tween(circle.transform, transitionHalfTime, new TweenConfig().scale(0).setEaseType(EaseType.Linear));
                //fadeOutTween.setOnCompleteHandler((a) => { Go.killAllTweensWithTarget(circle.transform); Destroy(circle); });
                fadeOutFlow.insert(0, fadeOutTween);
            }

            fadeOutFlow.setOnCompleteHandler((a) =>
                {
                    FadeInLevel(numLevel);
                }
            );

            fadeOutFlow.play();
        }
    }
Exemple #8
0
    private void FadeInLevel(int numLevel)
    {
        gameManager.currentTime_s = 0.0f;
        gameManager.AddTime(0);

        textLevelNum.text = "" + currentLevel;

        ClearLevel();

        LoadLevel(numLevel);

        TweenFlow fadeInFlow = new TweenFlow();

        foreach (GameObject circle in GameObject.FindGameObjectsWithTag("Circle"))
        {
            float origScale = circle.transform.localScale.x;
            circle.transform.localScale = Vector3.zero;

            Tween fadeInTween = new Tween(circle.transform, transitionHalfTime, new TweenConfig().scale(origScale).setEaseType(EaseType.QuadIn));

            fadeInFlow.insert(0, fadeInTween);
        }

        fadeInFlow.setOnCompleteHandler((aa) => { gameManager.gameState = GameState.Playing; });

        fadeInFlow.play();
    }
Exemple #9
0
    private void MoveCircle(float seconds, bool forward, System.Action onComplete)
    {
        Vector3 direction;

        if (forward)
        {
            AdvanceTime(seconds * 0.5f);
            direction = Vector3.right;
        }
        else
        {
            AdvanceTime(-seconds * 0.5f);
            direction = Vector3.left;
        }

        Vector3 destPosition = circle.transform.position + direction * circleSpeed * seconds;

        TweenFlow moveFlow = new TweenFlow();
        Tween moveTween = new Tween(circle.transform, seconds * 0.5f, new TweenConfig().position(destPosition).setEaseType(EaseType.Linear));
        moveFlow.insert(0, moveTween);
        moveFlow.setOnCompleteHandler((a) => { onComplete.Invoke(); });

        moveFlow.play();
    }
Exemple #10
0
    private void AdvanceTime(float secondsToAdd)
    {
        float dest = _seconds + secondsToAdd;

        TweenFlow moveFlow = new TweenFlow();
        Tween moveTween = new Tween(this, Mathf.Abs(secondsToAdd), new TweenConfig().floatProp("seconds", dest).setEaseType(EaseType.Linear));
        moveFlow.insert(0, moveTween);

        moveFlow.play();
    }
    void MakeBackground()
    {
        float thickness = 25f;
        float distanceBetween = 10f;
        float borderWidth = Futile.screen.width;
        float borderHeight = Futile.screen.height;

        TweenFlow flow = new TweenFlow();
        TweenConfig config = new TweenConfig()
            .floatProp("alpha", 0.15f);
        float delayBetweenTweenStarts = 0.2f;

        for (int i = 0; borderWidth > 0 && borderHeight > 0; i++) {
            TBorderLayer layer = new TBorderLayer(borderWidth, borderHeight, 25f, new Color(0.75f, 0.2f, 0.2f, 1.0f));
            layer.x = (distanceBetween + thickness) * i;
            layer.y = (distanceBetween + thickness) * i;
            layer.alpha = 0.0f;
            AddChild(layer);
            borderWidth = borderWidth - distanceBetween * 2f - thickness * 2f;
            borderHeight = borderHeight - distanceBetween * 2f - thickness * 2f;
            flow.insert(delayBetweenTweenStarts * i, new Tween(layer, 0.3f, config));
        }

        Go.addTween(flow);
        flow.play();
    }