public void FlashyAnimateTo(Vector3 endPosition, string rushTrigger, float additionalScaling)
        {
            Vector3 startPosition = this.transform.position;

            Vector3 oldScale = this.transform.localScale;
            Vector3 newScale = new Vector3(this.transform.localScale.x + additionalScaling, this.transform.localScale.y + additionalScaling, this.transform.localScale.z);

            this.AnimatorTrigger(rushTrigger);
            int duplicateSpriteCount = 0;

            this.DoEveryFrameForDuration(GameConstants.Instance.kFlashyAttackTransitionDuration, (float time, float duration) => {
                float percentageComplete = Easers.Ease(EaseType.QuadOut, 0.0f, 1.0f, time, duration);
                float oldZ = this.transform.position.z;
                this.transform.position   = Vector3.Lerp(startPosition, endPosition, percentageComplete);
                this.transform.position   = this.transform.position.SetZ(oldZ);
                this.transform.localScale = Vector3.Lerp(oldScale, newScale, percentageComplete);
                if ((int)(time / GameConstants.Instance.kDuplicateSpriteDelay) > duplicateSpriteCount)
                {
                    this.SpawnDuplicateSprite();
                    duplicateSpriteCount++;
                }
            }, () => {
                this.transform.position   = endPosition;
                this.transform.localScale = newScale;
                this.AnimatorIdle();
                this.OnFinishedFlashyAnimating.Invoke();
            });
        }
Example #2
0
 private void AnimateColorLerp(Color currentColor, Color nextColor)
 {
     this.DoEveryFrameForDuration(0.01f, (float time, float duration) => {
         float percentageComplete = Easers.Ease(EaseType.QuadOut, 0.0f, 1.0f, time, duration);
         this._renderer.color     = Color.Lerp(currentColor, nextColor, percentageComplete);
     }, () => {
         this._renderer.color = nextColor;
     });
 }
        protected IEnumerator AnimateScoreFontSize(float time)
        {
            int originalFontSize = this._scoreText.fontSize;

            for (float elapsedTime = 0; elapsedTime <= time; elapsedTime += Time.deltaTime)
            {
                this._scoreText.fontSize = (int)Easers.Ease(EaseType.QuadOut, originalFontSize, this._targetScoreFontSize, elapsedTime, time);
                yield return(new WaitForEndOfFrame());
            }
        }
Example #4
0
        public void TestEase()
        {
            var v = new Vector2(-2, -2);

            TestSteps(Tween.TweenTo(Vector2.Zero, Vector2.One, 2, x => v = x, Easers.EInSine, Cancellable.Null),
                      null, () => v, new [] {
                Vector2.Zero,
                Vector2.One * Easers.EInSine(0.5f),
                Vector2.One,
            }, VecEq);
        }
Example #5
0
 // PRAGMA MARK - Public
 public void SetSprite(Sprite sprite)
 {
     this._renderer.sprite = sprite;
     this.DoEveryFrameForDuration(this._fadeTime, (float time, float duration) => {
         float percentageComplete = Easers.Ease(EaseType.QuadOut, 0.0f, 1.0f, time, duration);
         this._renderer.color     = new Color(1.0f, 1.0f, 1.0f, 1.0f - percentageComplete);
     }, () => {
         this._renderer.color = Color.clear;
         Toolbox.GetInstance <ObjectPoolManager>().Recycle(this.gameObject);
     });
 }
Example #6
0
 public void FadeAway()
 {
     this.DoEveryFrameForDuration(0.2f, (float time, float duration) => {
         float percentageComplete = Easers.Ease(EaseType.QuadOut, 0.0f, 1.0f, time, duration);
         this._renderer.color     = new Color(this._renderer.color.r,
                                              this._renderer.color.g,
                                              this._renderer.color.b,
                                              Mathf.Max(1.0f - percentageComplete, 0.0f));
     }, () => {
         GameObject.Destroy(this.gameObject);
     });
 }
        protected IEnumerator MoveBetweenPositions(Transform t, Vector2 startPosition, Vector2 endPosition, float time, Action callback = default(Action))
        {
            t.localPosition = startPosition;

            for (float elapsedTime = 0; elapsedTime <= time; elapsedTime += Time.deltaTime)
            {
                t.localPosition = Vector2.Lerp(startPosition, endPosition, Easers.Ease(EaseType.QuadOut, 0.0f, 1.0f, elapsedTime, time));
                yield return(new WaitForEndOfFrame());
            }

            if (callback != null)
            {
                callback();
            }
        }
        protected IEnumerator ShakeHelper(float magnitude, float duration, EaseType easeType)
        {
            Vector3 offset;

            for (float time = 0.0f; time < duration; time += Time.deltaTime)
            {
                float   currentMagnitude = Easers.Ease(easeType, magnitude, 0.0f, time, duration);
                Vector3 transformedRight = transform.rotation * Vector3.right;
                Vector3 transformedUp    = transform.rotation * Vector3.up;

                offset = (transformedRight * Random.Range(-currentMagnitude, currentMagnitude))
                         + (transformedUp * Random.Range(-currentMagnitude, currentMagnitude));

                transform.position += offset;
                yield return(new WaitForEndOfFrame());

                transform.position -= offset;
            }
        }
Example #9
0
        protected IEnumerator MoveBetweenPositions(Vector2 startPosition, Vector2 endPosition, float time, Action callback)
        {
            this.transform.localPosition = startPosition;

            for (float elapsedTime = 0;; elapsedTime += Time.deltaTime)
            {
                this.transform.localPosition = Vector2.Lerp(startPosition, endPosition, Easers.Ease(EaseType.QuadOut, 0.0f, 1.0f, elapsedTime, time));

                if (elapsedTime >= time)
                {
                    break;
                }
                yield return(new WaitForEndOfFrame());
            }

            callback();
        }