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(); }
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(); }
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); } } ); }
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(); } }
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(); }
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(); }
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(); }