Пример #1
0
        private void AnimateScaleMultiplier()
        {
            _scaleTween?.stop();

            ScaleMultiplier = 1.4f;
            _scaleTween     = this.tween("ScaleMultiplier", 1f, 0.4f).setEaseType(EaseType.ExpoOut);
            _scaleTween.start();
        }
Пример #2
0
        public bool tick()
        {
            if (_tweenState == TweenState.Paused)
            {
                return(false);
            }

            // when we loop we clamp values between 0 and duration. this will hold the excess that we clamped off so it can be reapplied
            var elapsedTimeExcess = 0f;

            if (!_isRunningInReverse && _elapsedTime >= _duration)
            {
                elapsedTimeExcess = _elapsedTime - _duration;
                _elapsedTime      = _duration;
                _tweenState       = TweenState.Complete;
            }
            else if (_isRunningInReverse && _elapsedTime <= 0)
            {
                elapsedTimeExcess = 0 - _elapsedTime;
                _elapsedTime      = 0f;
                _tweenState       = TweenState.Complete;
            }

            // elapsed time will be negative while we are delaying the start of the tween so dont update the value
            if (_elapsedTime >= 0 && _elapsedTime <= _duration)
            {
                updateValue();
            }

            // if we have a loopType and we are Complete (meaning we reached 0 or duration) handle the loop.
            // handleLooping will take any excess elapsedTime and factor it in and call udpateValue if necessary to keep
            // the tween perfectly accurate.
            if (_loopType != LoopType.None && _tweenState == TweenState.Complete && _loops > 0)
            {
                handleLooping(elapsedTimeExcess);
            }

            var deltaTime = _isTimeScaleIndependent ? Time.unscaledDeltaTime : Time.deltaTime;

            deltaTime *= _timeScale;

            // running in reverse? then we need to subtract deltaTime
            if (_isRunningInReverse)
            {
                _elapsedTime -= deltaTime;
            }
            else
            {
                _elapsedTime += deltaTime;
            }

            if (_tweenState == TweenState.Complete)
            {
                if (_completionHandler != null)
                {
                    _completionHandler(this);
                }

                // if we have a nextTween add it to ZestKit so that it can start running
                if (_nextTween != null)
                {
                    _nextTween.start();
                    _nextTween = null;
                }

                return(true);
            }

            return(false);
        }