コード例 #1
0
 public virtual void MoveTo(float endX, float endY, int duration, InterpolationMode mode)
 {
     _beginX         = _curPos.x;
     _beginY         = _curPos.y;
     _endX           = endX;
     _endY           = endY;
     _moveToTime     = 0;
     _moveToDuration = duration;
     _moveFunc       = MathUtil.GetInterpolationFloatFunc(mode);
     _isMovingTo     = true;
     _isActive       = true;
 }
コード例 #2
0
 public void Reset()
 {
     _moveFunc         = null;
     _isMovingTo       = false;
     _isMovingStraight = false;
     _isMovingCurve    = false;
     _vx          = _vy = _dvx = _dvy = 0;
     _curAcce     = _curAccAngle = _curVAngle = 0;
     _maxVelocity = -1;
     _isActive    = false;
     _curRotation = 0;
     _reCalVAngle = false;
     ResetExtraSpeedParas();
 }
コード例 #3
0
 protected void MovingTo()
 {
     _moveToTime++;
     // 临时记录
     _dx = _curPos.x;
     _dy = _curPos.y;
     // 计算新的位置
     _curPos.x = _moveFunc(_beginX, _endX, _moveToTime, _moveToDuration);
     _curPos.y = _moveFunc(_beginY, _endY, _moveToTime, _moveToDuration);
     if (_moveToTime >= _moveToDuration)
     {
         _curPos.x   = _endX;
         _curPos.y   = _endY;
         _moveFunc   = null;
         _isMovingTo = false;
     }
     // 计算位置增量
     _dx = _curPos.x - _dx;
     _dy = _curPos.y - _dy;
 }
コード例 #4
0
 public void Clear()
 {
     isCached = false;
     isFinish = false;
     GetInterpolationValueFunc = null;
 }
コード例 #5
0
 /// <summary>
 /// 设置插值的方式
 /// </summary>
 /// <param name="mode"></param>
 protected void SetInterpolationMode(InterpolationMode mode)
 {
     _interpolationMode = mode;
     _interpolationFunc = MathUtil.GetInterpolationFloatFunc(mode);
 }