Example #1
0
    public void reverse()
    {
        var prevReversed = _reversed;

        if (prevReversed)
        {
            this.ease = easeOriginal;
        }
        else
        {
            ease = easeReversed;
        }
        back();
    }
Example #2
0
 public NTweenParam ease(NTweenEaseFunction easeFunction)
 {
     param.Add("ease", easeFunction);
     return(this);
 }
Example #3
0
    public void render(float playHead)
    {
        if (!_initted)
        {
            init();
            if (onStart != null)
            {
                onStart(this, onStartParams);
            }
        }
        else if (_currentPlayHead == playHead)        //if we are render same time,just call onUpdate
        {
            if (onUpdate != null)
            {
                onUpdate(this, onUpdateParams);
            }
            return;
        }
        _currentPlayHead = playHead;
        if (_reversed)
        {
            playHead = this.duration - playHead;
        }
        float ratio;

        if (playHead >= this.duration)
        {
            ratio = 1;
        }
        else if (playHead <= 0)
        {
            ratio = 0;
        }
        else
        {
            ratio = ease(playHead, 0, 1, this.duration);
        }
        var pt = this._firstPT;

        while (pt != null)
        {
            SetPropValue(pt.target, pt.property, Addition(pt.start, Multiply(pt.change, ratio)));
            pt = pt._next;
        }
        if (onUpdate != null)
        {
            onUpdate(this, onUpdateParams);
        }
        if (playHead >= this.duration || (_reversed && playHead <= 0))
        {
            if (_totalLoop != 0)
            {
                if (onLoopComplete != null)
                {
                    onLoopComplete(this, onLoopCompleteParams);
                }
            }
            if (_loop != 0)
            {
                if (_loop > 0)
                {
                    --_loop;
                }
                if (_reversed)
                {
                    startTime = nowTime + playHead;
                }
                else
                {
                    startTime = nowTime + (playHead - this.duration);
                }
                startTime       += _loopDelay / timeScale;
                _currentPlayHead = 0;
                if (_yoyoReverse || _yoyo)
                {
                    _reversed = !_reversed;
                }
                if (_yoyoReverse)
                {
                    ease = _reversed ? easeReversed : easeOriginal;
                }
            }
            else
            {
                complete(true);
            }
        }
    }
Example #4
0
    public NTween(object target, float duration, Hashtable vars, NTweenContainer container)
    {
        if (target == null)
        {
            throw new Exception("ntween target is null");
        }

        this.vars       = CleanArgs(vars);
        this._duration  = duration;
        this.target     = target;
        this._container = container;
        this.gameObject = container.gameObject;
        if (null == this.vars["ease"])
        {
            ease = Linear.EaseOut;
        }
        else
        {
            ease = (NTweenEaseFunction)this.vars["ease"];
        }
        easeOriginal    = ease;
        this._timeScale = 1.0f;
        this._useFrames = SafeGetVar <bool>(vars, "useFrames");
        delay           = SafeGetVar <float>(vars, "delay");
        if (vars.ContainsKey("loop"))
        {
            if (vars["loop"] is bool)
            {
                _totalLoop = this._loop = (bool)vars["loop"] ? -1 : 0;
            }
            else
            {
                _totalLoop = this._loop = SafeGetVar <int>(vars, "loop");
            }
        }
        this._loopDelay   = SafeGetVar <float>(vars, "loopDelay");
        this._yoyo        = SafeGetVar <bool>(vars, "yoyo");
        this._yoyoReverse = SafeGetVar <bool>(vars, "yoyoReverse");
        if ((this._yoyo || this._yoyoReverse) && _totalLoop == 0)
        {
            _totalLoop = _loop = -1;
        }
        this.startTime      = nowTime + delay;
        this.onUpdate       = SafeGetVar <NTweenCallback>(vars, "onUpdate");
        this.onUpdateParams = SafeGetVar <object>(vars, "onUpdateParams");

        this.onComplete       = SafeGetVar <NTweenCallback>(vars, "onComplete");
        this.onCompleteParams = SafeGetVar <object>(vars, "onCompleteParams");

        this.onLoopComplete       = SafeGetVar <NTweenCallback>(vars, "onLoopComplete");
        this.onLoopCompleteParams = SafeGetVar <object>(vars, "onLoopCompleteParams");

        if (SafeGetVar <int>(vars, "overwrite") == 1)
        {
            container.RemoveByTarget(target);
        }

        if (SafeGetVar <bool>(vars, "renderNow") || (duration == 0 && delay == 0))
        {
            render(0);
        }
    }