public void reverse() { var prevReversed = _reversed; if (prevReversed) { this.ease = easeOriginal; } else { ease = easeReversed; } back(); }
public NTweenParam ease(NTweenEaseFunction easeFunction) { param.Add("ease", easeFunction); return(this); }
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); } } }
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); } }