@litecanvas/utils 0.21.0 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/all.js +37 -10
- package/dist/all.min.js +2 -2
- package/dist/tween.js +37 -10
- package/dist/tween.min.js +1 -1
- package/package.json +1 -1
- package/src/tween/index.js +41 -10
package/dist/all.js
CHANGED
|
@@ -980,6 +980,8 @@
|
|
|
980
980
|
_x;
|
|
981
981
|
/** @type {number} */
|
|
982
982
|
_d;
|
|
983
|
+
/** @type {number} */
|
|
984
|
+
_w;
|
|
983
985
|
/** @type {(x: number) => number} */
|
|
984
986
|
_e;
|
|
985
987
|
/** @type {boolean} */
|
|
@@ -1009,6 +1011,7 @@
|
|
|
1009
1011
|
this._x = toValue;
|
|
1010
1012
|
this._d = duration;
|
|
1011
1013
|
this._e = easing;
|
|
1014
|
+
this._w = 0;
|
|
1012
1015
|
}
|
|
1013
1016
|
/**
|
|
1014
1017
|
* @param {LitecanvasInstance} [engine]
|
|
@@ -1024,13 +1027,14 @@
|
|
|
1024
1027
|
const toValue = this._rel ? fromValue + this._x : this._x;
|
|
1025
1028
|
this._lc = this._lc || engine || globalThis;
|
|
1026
1029
|
this._u = this._lc.listen("update", (dt) => {
|
|
1027
|
-
this.
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1030
|
+
if (this._t <= this._w) {
|
|
1031
|
+
this._t += dt;
|
|
1032
|
+
return;
|
|
1033
|
+
}
|
|
1034
|
+
const t = this._t - this._w;
|
|
1035
|
+
this._o[this._p] = this._lc.lerp(fromValue, toValue, this._e(t / this._d));
|
|
1032
1036
|
this._t += dt;
|
|
1033
|
-
if (
|
|
1037
|
+
if (t >= this._d) {
|
|
1034
1038
|
this._o[this._p] = toValue;
|
|
1035
1039
|
this.stop();
|
|
1036
1040
|
}
|
|
@@ -1040,6 +1044,7 @@
|
|
|
1040
1044
|
}
|
|
1041
1045
|
/**
|
|
1042
1046
|
* @param {Function} callback
|
|
1047
|
+
* @returns {this}
|
|
1043
1048
|
*/
|
|
1044
1049
|
onEnd(callback) {
|
|
1045
1050
|
this._cb.push(callback);
|
|
@@ -1047,7 +1052,7 @@
|
|
|
1047
1052
|
}
|
|
1048
1053
|
/**
|
|
1049
1054
|
* @param {boolean} completed if `false` don't call the `onEnd()` registered callbacks.
|
|
1050
|
-
* @returns
|
|
1055
|
+
* @returns {this}
|
|
1051
1056
|
*/
|
|
1052
1057
|
stop(completed = true) {
|
|
1053
1058
|
if (!this.running || !this._u) return;
|
|
@@ -1063,7 +1068,7 @@
|
|
|
1063
1068
|
}
|
|
1064
1069
|
/**
|
|
1065
1070
|
* @param {TweenController} another
|
|
1066
|
-
* @returns {
|
|
1071
|
+
* @returns {this}
|
|
1067
1072
|
*/
|
|
1068
1073
|
chain(another) {
|
|
1069
1074
|
this._ch.onEnd(() => {
|
|
@@ -1072,24 +1077,46 @@
|
|
|
1072
1077
|
this._ch = another;
|
|
1073
1078
|
return this;
|
|
1074
1079
|
}
|
|
1080
|
+
/**
|
|
1081
|
+
* @param {boolean} [flag=true]
|
|
1082
|
+
* @returns {this}
|
|
1083
|
+
*/
|
|
1075
1084
|
reset() {
|
|
1076
1085
|
this._cb.length = 0;
|
|
1077
1086
|
return this.stop();
|
|
1078
1087
|
}
|
|
1088
|
+
/**
|
|
1089
|
+
* @param {boolean} [flag=true]
|
|
1090
|
+
* @returns {this}
|
|
1091
|
+
*/
|
|
1079
1092
|
relative(flag = true) {
|
|
1080
1093
|
this._rel = flag;
|
|
1081
1094
|
return this;
|
|
1082
1095
|
}
|
|
1096
|
+
/**
|
|
1097
|
+
* @param {number} value
|
|
1098
|
+
* @returns {this}
|
|
1099
|
+
*/
|
|
1100
|
+
delay(value) {
|
|
1101
|
+
this._w = value;
|
|
1102
|
+
return this;
|
|
1103
|
+
}
|
|
1083
1104
|
/**
|
|
1084
1105
|
* Returns the current tween of the chain.
|
|
1085
1106
|
*
|
|
1086
|
-
* @returns {
|
|
1107
|
+
* @returns {this}
|
|
1087
1108
|
*/
|
|
1088
1109
|
get current() {
|
|
1089
1110
|
return this._cu;
|
|
1090
1111
|
}
|
|
1112
|
+
/**
|
|
1113
|
+
* @returns {number} the current progress (0..1)
|
|
1114
|
+
*/
|
|
1091
1115
|
get progress() {
|
|
1092
|
-
|
|
1116
|
+
if (this.running && this._t > this._w) {
|
|
1117
|
+
return (this._t - this._w) / this._d;
|
|
1118
|
+
}
|
|
1119
|
+
return 0;
|
|
1093
1120
|
}
|
|
1094
1121
|
};
|
|
1095
1122
|
|
package/dist/all.min.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
(()=>{var Q=Object.defineProperty;var v=(e,t)=>{for(var s in t)Q(e,s,{get:t[s],enumerable:!0})};globalThis.utils=globalThis.utils||{};globalThis.utils.global=()=>{for(let e in globalThis.utils)e!=="global"&&(globalThis[e]=globalThis.utils[e])};var k={};v(k,{ANCHOR_BOT_LEFT:()=>Ht,ANCHOR_BOT_RIGHT:()=>At,ANCHOR_CENTER:()=>It,ANCHOR_TOP_LEFT:()=>G,ANCHOR_TOP_RIGHT:()=>bt,Actor:()=>
|
|
2
|
-
`)}},M=class e extends g{constructor(t,s,i=Uint8Array){super(t,s,null),this._c=new i(this._w*this._h)}has(t,s){return this.get(t,s)!==0}clone(){let t=new e(this._w,this._h,this._c.constructor);return this.forEach((s,i,r)=>{t.set(s,i,r)}),t}};function X(e,t,s){return e<t?t:e>s?s:e}var I=Math.sqrt,R=Math.cos,Y=Math.sin,tt=2*Math.PI,p=class{x;y;constructor(t=0,s=t){this.x=t,this.y=s}toString(){return`Vector (${this.x}, ${this.y})`}},l=e=>e instanceof p,n=(e=0,t=e)=>(l(e)&&(t=e.y,e=e.x),new p(e,t)),b=(e,t,s=t)=>l(t)?b(e,t.x,t.y):e.x===t&&e.y===s,B=(e,t,s=t)=>(l(t)?B(e,t.x,t.y):(e.x=t,e.y=s),e),H=(e,t,s=t)=>l(t)?H(e,t.x,t.y):(e.x+=t,e.y+=s,e),A=(e,t,s=t)=>l(t)?A(e,t.x,t.y):(e.x-=t,e.y-=s,e),_=(e,t,s=t)=>l(t)?_(e,t.x,t.y):(e.x*=t,e.y*=s,e),y=(e,t,s=t)=>l(t)?y(e,t.x,t.y):(e.x/=t||1,e.y/=s||1,e),et=(e,t)=>{let s=R(t),i=Y(t);return e.x=s*e.x-i*e.y,e.y=i*e.x+s*e.y,e},st=(e,t)=>{let s=O(n(t));return A(e,_(s,2*
|
|
1
|
+
(()=>{var Q=Object.defineProperty;var v=(e,t)=>{for(var s in t)Q(e,s,{get:t[s],enumerable:!0})};globalThis.utils=globalThis.utils||{};globalThis.utils.global=()=>{for(let e in globalThis.utils)e!=="global"&&(globalThis[e]=globalThis.utils[e])};var k={};v(k,{ANCHOR_BOT_LEFT:()=>Ht,ANCHOR_BOT_RIGHT:()=>At,ANCHOR_CENTER:()=>It,ANCHOR_TOP_LEFT:()=>G,ANCHOR_TOP_RIGHT:()=>bt,Actor:()=>S,BACK_IN:()=>kt,BACK_IN_OUT:()=>Pt,BACK_OUT:()=>Lt,BOUNCE_IN:()=>J,BOUNCE_IN_OUT:()=>Bt,BOUNCE_OUT:()=>D,Camera:()=>f,DOWN:()=>Et,EASE_IN:()=>St,EASE_IN_OUT:()=>Dt,EASE_OUT:()=>Ct,ELASTIC_IN:()=>Xt,ELASTIC_IN_OUT:()=>Yt,ELASTIC_OUT:()=>Rt,Grid:()=>g,LEFT:()=>Mt,LINEAR:()=>Z,ONE:()=>mt,RIGHT:()=>wt,TypedGrid:()=>M,UP:()=>Tt,Vector:()=>p,ZERO:()=>F,advance:()=>q,diff:()=>V,fract:()=>$,intersection:()=>x,mod:()=>K,range:()=>z,resolve:()=>P,tween:()=>Ot,vec:()=>n,vecAbs:()=>ft,vecAdd:()=>H,vecAngle:()=>ht,vecAngleBetween:()=>at,vecCeil:()=>pt,vecClamp:()=>xt,vecCross:()=>ct,vecDist:()=>ot,vecDist2:()=>nt,vecDiv:()=>y,vecDot:()=>W,vecEq:()=>b,vecFloor:()=>_t,vecIsZero:()=>yt,vecLerp:()=>lt,vecLimit:()=>rt,vecMag:()=>U,vecMag2:()=>N,vecMove:()=>gt,vecMult:()=>_,vecNorm:()=>O,vecRand:()=>ut,vecReflect:()=>st,vecRotate:()=>et,vecRound:()=>dt,vecSet:()=>B,vecSetMag:()=>it,vecSub:()=>A,wave:()=>j});var x=(e,t,s,i,r,o,h,a)=>{let c=Math.max(e,r),L=Math.min(e+s,r+h)-c,d=Math.max(t,o),T=Math.min(t+i,o+a)-d;return[c,d,L,T]};var P=(e,t,s,i,r,o,h,a)=>{let[c,L,d,T]=x(e,t,s,i,r,o,h,a),u="",w=e,E=t;return d<T?e<r?(u="right",w=r-s):(u="left",w=r+h):t<o?(u="bottom",E=o-i):(u="top",E=o+a),{direction:u,x:w,y:E}};var f=class{_engine=null;x=0;y=0;ox=0;oy=0;width=0;height=0;rotation=0;scale=1;_shake={x:0,y:0,removeListener:null};constructor(t=null,s=0,i=0,r=null,o=null){this._engine=t||globalThis,this.ox=s,this.oy=i,this.resize(r||this._engine.WIDTH-s,o||this._engine.HEIGHT-i),this.x=this.width/2,this.y=this.height/2}resize(t,s){this.width=t,this.height=s,this._engine.emit("camera-resized",this)}start(t=!1){if(this._engine.push(),t){let r=path();r.rect(this.ox,this.oy,this.width,this.height),this._engine.clip(r)}let s=this.ox+this.width/2,i=this.oy+this.height/2;this._engine.translate(s,i),this._engine.scale(this.scale),this._engine.rotate(this.rotation),this._engine.translate(-this.x+this._shake.x,-this.y+this._shake.y)}end(){this._engine.pop()}lookAt(t,s){this.x=t,this.y=s}move(t,s){this.x+=t,this.y+=s}zoom(t){this.scale*=t}zoomTo(t){this.scale=t}rotate(t){this.rotation+=t}rotateTo(t){this.rotation=t}getWorldPoint(t,s,i={}){let r=Math.cos(-this.rotation),o=Math.sin(-this.rotation);return t=(t-this.width/2-this.ox)/this.scale,s=(s-this.height/2-this.oy)/this.scale,i.x=r*t-o*s+this.x,i.y=o*t+r*s+this.y,i}getCameraPoint(t,s,i={}){let r=Math.cos(-this.rotation),o=Math.sin(-this.rotation);return t=t-this.x,s=s-this.y,t=r*t-o*s,s=o*t+r*s,i.x=t*this.scale+this.width/2+this.ox,i.y=s*this.scale+this.height/2+this.oy,i}getBounds(){return[this.ox,this.oy,this.width,this.height]}viewing(t,s,i,r){let o=this.width/2-this.x,h=this.height/2-this.y,a=this.width/this.scale,c=this.height/this.scale;return this._engine.colrect(t,s,i,r,o,h,a,c)}shake(t=1,s=.3){this.shaking||(this._shake.removeListener=this._engine.listen("update",i=>{this._shake.x=this._engine.randi(-t,t),this._shake.y=this._engine.randi(-t,t),s-=i,s<=0&&this.unshake()}))}unshake(){this.shaking&&(this._shake.removeListener(),this._shake.removeListener=null,this._shake.x=this._shake.y=0)}get shaking(){return this._shake.removeListener!==null}};var g=class e{_w;_h;_c;constructor(t,s,i=[]){this._w=Math.max(1,~~t),this._h=Math.max(1,~~s),this._c=i}[Symbol.iterator](){let t=0;return{next:()=>({value:[this.indexToPointX(t),this.indexToPointY(t),this._c[t++]],done:t>this._c.length})}}clone(){return new e(this._w,this._h,this._c)}clear(){this.forEach((t,s)=>this.set(t,s,void 0))}get width(){return this._w}get height(){return this._h}set(t,s,i){this._c[this.pointToIndex(t,s)]=i}get(t,s){return this._c[this.pointToIndex(t,s)]}has(t,s){return this.get(t,s)!=null}check(t,s){return t>=0&&t<this._w&&s>=0&&s<this._h}get length(){return this._w*this._h}pointToIndex(t,s){return this.clampX(~~t)+this.clampY(~~s)*this._w}indexToPointX(t){return t%this._w}indexToPointY(t){return Math.floor(t/this._w)}forEach(t,s=!1){let i=s?this.length-1:0,r=s?-1:this.length,o=s?-1:1;for(;i!==r;){let h=this.indexToPointX(i),a=this.indexToPointY(i),c=this._c[i];if(t(h,a,c,this)===!1)break;i+=o}}fill(t){this.forEach((s,i)=>{this.set(s,i,t)})}clampX(t){return X(t,0,this._w-1)}clampY(t){return X(t,0,this._h-1)}toArray(){return this._c.slice()}toString(t=" ",s=!0){if(!s)return this._c.join(t);let i=[];return this.forEach((r,o,h)=>{i[o]=i[o]||"",i[o]+=h+t}),i.join(`
|
|
2
|
+
`)}},M=class e extends g{constructor(t,s,i=Uint8Array){super(t,s,null),this._c=new i(this._w*this._h)}has(t,s){return this.get(t,s)!==0}clone(){let t=new e(this._w,this._h,this._c.constructor);return this.forEach((s,i,r)=>{t.set(s,i,r)}),t}};function X(e,t,s){return e<t?t:e>s?s:e}var I=Math.sqrt,R=Math.cos,Y=Math.sin,tt=2*Math.PI,p=class{x;y;constructor(t=0,s=t){this.x=t,this.y=s}toString(){return`Vector (${this.x}, ${this.y})`}},l=e=>e instanceof p,n=(e=0,t=e)=>(l(e)&&(t=e.y,e=e.x),new p(e,t)),b=(e,t,s=t)=>l(t)?b(e,t.x,t.y):e.x===t&&e.y===s,B=(e,t,s=t)=>(l(t)?B(e,t.x,t.y):(e.x=t,e.y=s),e),H=(e,t,s=t)=>l(t)?H(e,t.x,t.y):(e.x+=t,e.y+=s,e),A=(e,t,s=t)=>l(t)?A(e,t.x,t.y):(e.x-=t,e.y-=s,e),_=(e,t,s=t)=>l(t)?_(e,t.x,t.y):(e.x*=t,e.y*=s,e),y=(e,t,s=t)=>l(t)?y(e,t.x,t.y):(e.x/=t||1,e.y/=s||1,e),et=(e,t)=>{let s=R(t),i=Y(t);return e.x=s*e.x-i*e.y,e.y=i*e.x+s*e.y,e},st=(e,t)=>{let s=O(n(t));return A(e,_(s,2*W(e,s)))},it=(e,t)=>(O(e),_(e,t),e),U=e=>I(e.x*e.x+e.y*e.y),N=e=>e.x*e.x+e.y*e.y,O=e=>{let t=U(e);return t>0&&y(e,t),e},rt=(e,t=1)=>{let s=N(e);return s>t*t&&(y(e,I(s)),_(e,t)),e},ot=(e,t)=>{let s=e.x-t.x,i=e.y-t.y;return I(s*s+i*i)},nt=(e,t)=>{let s=e.x-t.x,i=e.y-t.y;return s*s+i*i},ht=e=>Math.atan2(e.y,e.x),at=(e,t)=>Math.atan2(t.y-e.y,t.x-e.x),W=(e,t)=>e.x*t.x+e.y*t.y,ct=(e,t)=>e.x*t.y-e.y*t.x,lt=(e,t,s)=>(e.x+=(t.x-e.x)*s||0,e.y+=(t.y-e.y)*s||0,e),ut=(e=1,t=e,s=globalThis.rand||Math.random)=>{let i=s()*tt,r=s()*(t-e)+e;return n(R(i)*r,Y(i)*r)},ft=e=>(e.x=Math.abs(e.x),e.y=Math.abs(e.y),e),pt=e=>(e.x=Math.ceil(e.x),e.y=Math.ceil(e.y),e),_t=e=>(e.x=Math.floor(e.x),e.y=Math.floor(e.y),e),dt=e=>(e.x=Math.round(e.x),e.y=Math.round(e.y),e),xt=(e,t,s)=>(e.x<t.x&&(e.x=t.x),e.x>s.x&&(e.x=s.x),e.y<t.y&&(e.y=t.y),e.y>s.y&&(e.y=s.y),e),gt=(e,t,s=1)=>H(e,t.x*s,t.y*s),yt=e=>b(e,F),F=n(0,0),mt=n(1,1),Tt=n(0,-1),wt=n(1,0),Et=n(0,1),Mt=n(-1,0);var It=n(.5,.5),G=n(0,0),bt=n(1,0),Ht=n(0,1),At=n(1,1),S=class{sprite;pos;_o;_s;flipX=!1;flipY=!1;angle=0;opacity=1;hidden=!1;constructor(t,s,i=G){this.sprite=t,this.pos=s||n(0),this._o=n(i),this._s=n(1,1)}set x(t){this.pos.x=t}get x(){return this.pos.x}set y(t){this.pos.y=t}get y(){return this.pos.y}set anchor(t){this._o.x=t.x,this._o.y=t.y}get anchor(){return this._o}get width(){return this.sprite.width*this._s.x}get height(){return this.sprite.height*this._s.y}get scale(){return this._s}scaleTo(t,s=t){this._s.x=t,this._s.y=s}scaleBy(t,s=t){this._s.x*=t,this._s.y*=s}getBounds(t=!0){let s=this.sprite.width*(t?this._s.x:1),i=this.sprite.height*(t?this._s.y:1),r=this.pos.x-s*this.anchor.x,o=this.pos.y-i*this.anchor.y;return[r,o,s,i]}draw(t=globalThis,s=!0){this.hidden||this.opacity<=0||(s&&t.push(),this.transform(t),this.drawImage(t),s&&t.pop())}transform(t){t.translate(this.pos.x,this.pos.y),t.rotate(t.deg2rad(this.angle)),t.scale((this.flipX?-1:1)*this._s.x,(this.flipY?-1:1)*this._s.y)}drawImage(t,s=!0){let i=this.anchor,r=-this.sprite.width*(this.flipX?1-i.x:i.x),o=-this.sprite.height*(this.flipY?1-i.y:i.y);s&&t.alpha(this.opacity),t.image(r,o,this.sprite)}};var V=(e,t)=>Math.abs(t-e)||0;var j=(e,t,s,i=Math.sin)=>e+(i(s)+1)/2*(t-e);var $=e=>e%1||0;var z=e=>Array.from(Array(e).keys());var q=advance=(e,t,s,i=1)=>{s&&(t.x+=s.x*i,t.y+=s.y*i),e.x+=t.x*i,e.y+=t.y*i};var K=(e,t)=>(t+e%t)%t;var m=Math.PI/2,Ot=(e,t,s,i=1,r=Z)=>new C(e,t,s,i,r),Z=e=>e,St=e=>e*e,Ct=e=>-e*(e-2),Dt=e=>e<.5?2*e*e:-2*e*e+4*e-1,kt=e=>e*e*e-e*Math.sin(e*Math.PI),Lt=e=>{let t=1-e;return 1-(t*t*t-t*Math.sin(t*Math.PI))},Pt=e=>{if(e<.5){let s=2*e;return .5*(s*s*s-s*Math.sin(s*Math.PI))}let t=1-(2*e-1);return .5*(1-(t*t*t-t*Math.sin(e*Math.PI)))+.5},Xt=e=>Math.sin(13*m*e)*Math.pow(2,10*(e-1)),Rt=e=>Math.sin(-13*m*(e+1))*Math.pow(2,-10*e)+1,Yt=e=>{if(e<.5){let i=Math.sin(13*m*(2*e)),r=Math.pow(2,10*(2*e-1));return .5*i*r}let t=Math.sin(-13*m*(2*e-1+1)),s=Math.pow(2,-10*(2*e-1));return .5*(t*s+2)},J=e=>1-D(1-e),D=e=>e<4/11?121*e*e/16:e<8/11?363/40*e*e-99/10*e+17/5:e<9/10?4356/361*e*e-35442/1805*e+16061/1805:54/5*e*e-513/25*e+268/25,Bt=e=>e<.5?.5*J(e*2):.5*D(e*2-1)+.5,C=class{running=!1;_o;_p;_x;_d;_w;_e;_rel;_cb=[];_t=0;_u=0;_ch=this;_cu=this;_lc;constructor(t,s,i,r,o){this._o=t,this._p=s,this._x=i,this._d=r,this._e=o,this._w=0}start(t){this.running||this.stop(),this._cu.stop(!1),this._ch=this._cu=this;let s=this._o[this._p]||0,i=this._rel?s+this._x:this._x;return this._lc=this._lc||t||globalThis,this._u=this._lc.listen("update",r=>{if(this._t<=this._w){this._t+=r;return}let o=this._t-this._w;this._o[this._p]=this._lc.lerp(s,i,this._e(o/this._d)),this._t+=r,o>=this._d&&(this._o[this._p]=i,this.stop())}),this.running=!0,this}onEnd(t){return this._cb.push(t),this}stop(t=!0){if(!(!this.running||!this._u)){if(this.running=!1,this._u(),this._t=0,t)for(let s of this._cb)s(this._o);return this}}chain(t){return this._ch.onEnd(()=>{this._cu=t.start(this._lc)}),this._ch=t,this}reset(){return this._cb.length=0,this.stop()}relative(t=!0){return this._rel=t,this}delay(t){return this._w=t,this}get current(){return this._cu}get progress(){return this.running&&this._t>this._w?(this._t-this._w)/this._d:0}};globalThis.utils=Object.assign(globalThis.utils||{},k);})();
|
|
3
3
|
/*! @litecanvas/utils by Luiz Bills | MIT Licensed */
|
package/dist/tween.js
CHANGED
|
@@ -102,6 +102,8 @@
|
|
|
102
102
|
_x;
|
|
103
103
|
/** @type {number} */
|
|
104
104
|
_d;
|
|
105
|
+
/** @type {number} */
|
|
106
|
+
_w;
|
|
105
107
|
/** @type {(x: number) => number} */
|
|
106
108
|
_e;
|
|
107
109
|
/** @type {boolean} */
|
|
@@ -131,6 +133,7 @@
|
|
|
131
133
|
this._x = toValue;
|
|
132
134
|
this._d = duration;
|
|
133
135
|
this._e = easing;
|
|
136
|
+
this._w = 0;
|
|
134
137
|
}
|
|
135
138
|
/**
|
|
136
139
|
* @param {LitecanvasInstance} [engine]
|
|
@@ -146,13 +149,14 @@
|
|
|
146
149
|
const toValue = this._rel ? fromValue + this._x : this._x;
|
|
147
150
|
this._lc = this._lc || engine || globalThis;
|
|
148
151
|
this._u = this._lc.listen("update", (dt) => {
|
|
149
|
-
this.
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
152
|
+
if (this._t <= this._w) {
|
|
153
|
+
this._t += dt;
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
const t = this._t - this._w;
|
|
157
|
+
this._o[this._p] = this._lc.lerp(fromValue, toValue, this._e(t / this._d));
|
|
154
158
|
this._t += dt;
|
|
155
|
-
if (
|
|
159
|
+
if (t >= this._d) {
|
|
156
160
|
this._o[this._p] = toValue;
|
|
157
161
|
this.stop();
|
|
158
162
|
}
|
|
@@ -162,6 +166,7 @@
|
|
|
162
166
|
}
|
|
163
167
|
/**
|
|
164
168
|
* @param {Function} callback
|
|
169
|
+
* @returns {this}
|
|
165
170
|
*/
|
|
166
171
|
onEnd(callback) {
|
|
167
172
|
this._cb.push(callback);
|
|
@@ -169,7 +174,7 @@
|
|
|
169
174
|
}
|
|
170
175
|
/**
|
|
171
176
|
* @param {boolean} completed if `false` don't call the `onEnd()` registered callbacks.
|
|
172
|
-
* @returns
|
|
177
|
+
* @returns {this}
|
|
173
178
|
*/
|
|
174
179
|
stop(completed = true) {
|
|
175
180
|
if (!this.running || !this._u) return;
|
|
@@ -185,7 +190,7 @@
|
|
|
185
190
|
}
|
|
186
191
|
/**
|
|
187
192
|
* @param {TweenController} another
|
|
188
|
-
* @returns {
|
|
193
|
+
* @returns {this}
|
|
189
194
|
*/
|
|
190
195
|
chain(another) {
|
|
191
196
|
this._ch.onEnd(() => {
|
|
@@ -194,24 +199,46 @@
|
|
|
194
199
|
this._ch = another;
|
|
195
200
|
return this;
|
|
196
201
|
}
|
|
202
|
+
/**
|
|
203
|
+
* @param {boolean} [flag=true]
|
|
204
|
+
* @returns {this}
|
|
205
|
+
*/
|
|
197
206
|
reset() {
|
|
198
207
|
this._cb.length = 0;
|
|
199
208
|
return this.stop();
|
|
200
209
|
}
|
|
210
|
+
/**
|
|
211
|
+
* @param {boolean} [flag=true]
|
|
212
|
+
* @returns {this}
|
|
213
|
+
*/
|
|
201
214
|
relative(flag = true) {
|
|
202
215
|
this._rel = flag;
|
|
203
216
|
return this;
|
|
204
217
|
}
|
|
218
|
+
/**
|
|
219
|
+
* @param {number} value
|
|
220
|
+
* @returns {this}
|
|
221
|
+
*/
|
|
222
|
+
delay(value) {
|
|
223
|
+
this._w = value;
|
|
224
|
+
return this;
|
|
225
|
+
}
|
|
205
226
|
/**
|
|
206
227
|
* Returns the current tween of the chain.
|
|
207
228
|
*
|
|
208
|
-
* @returns {
|
|
229
|
+
* @returns {this}
|
|
209
230
|
*/
|
|
210
231
|
get current() {
|
|
211
232
|
return this._cu;
|
|
212
233
|
}
|
|
234
|
+
/**
|
|
235
|
+
* @returns {number} the current progress (0..1)
|
|
236
|
+
*/
|
|
213
237
|
get progress() {
|
|
214
|
-
|
|
238
|
+
if (this.running && this._t > this._w) {
|
|
239
|
+
return (this._t - this._w) / this._d;
|
|
240
|
+
}
|
|
241
|
+
return 0;
|
|
215
242
|
}
|
|
216
243
|
};
|
|
217
244
|
|
package/dist/tween.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var h=Object.defineProperty;var p=(t,e)=>{for(var s in e)h(t,s,{get:e[s],enumerable:!0})};globalThis.utils=globalThis.utils||{};globalThis.utils.global=()=>{for(let t in globalThis.utils)t!=="global"&&(globalThis[t]=globalThis.utils[t])};var
|
|
1
|
+
(()=>{var h=Object.defineProperty;var p=(t,e)=>{for(var s in e)h(t,s,{get:e[s],enumerable:!0})};globalThis.utils=globalThis.utils||{};globalThis.utils.global=()=>{for(let t in globalThis.utils)t!=="global"&&(globalThis[t]=globalThis.utils[t])};var c={};p(c,{BACK_IN:()=>E,BACK_IN_OUT:()=>m,BACK_OUT:()=>x,BOUNCE_IN:()=>f,BOUNCE_IN_OUT:()=>y,BOUNCE_OUT:()=>l,EASE_IN:()=>d,EASE_IN_OUT:()=>T,EASE_OUT:()=>g,ELASTIC_IN:()=>I,ELASTIC_IN_OUT:()=>w,ELASTIC_OUT:()=>b,LINEAR:()=>u,tween:()=>_});var n=Math.PI/2,_=(t,e,s,i=1,o=u)=>new a(t,e,s,i,o),u=t=>t,d=t=>t*t,g=t=>-t*(t-2),T=t=>t<.5?2*t*t:-2*t*t+4*t-1,E=t=>t*t*t-t*Math.sin(t*Math.PI),x=t=>{let e=1-t;return 1-(e*e*e-e*Math.sin(e*Math.PI))},m=t=>{if(t<.5){let s=2*t;return .5*(s*s*s-s*Math.sin(s*Math.PI))}let e=1-(2*t-1);return .5*(1-(e*e*e-e*Math.sin(t*Math.PI)))+.5},I=t=>Math.sin(13*n*t)*Math.pow(2,10*(t-1)),b=t=>Math.sin(-13*n*(t+1))*Math.pow(2,-10*t)+1,w=t=>{if(t<.5){let i=Math.sin(13*n*(2*t)),o=Math.pow(2,10*(2*t-1));return .5*i*o}let e=Math.sin(-13*n*(2*t-1+1)),s=Math.pow(2,-10*(2*t-1));return .5*(e*s+2)},f=t=>1-l(1-t),l=t=>t<4/11?121*t*t/16:t<8/11?363/40*t*t-99/10*t+17/5:t<9/10?4356/361*t*t-35442/1805*t+16061/1805:54/5*t*t-513/25*t+268/25,y=t=>t<.5?.5*f(t*2):.5*l(t*2-1)+.5,a=class{running=!1;_o;_p;_x;_d;_w;_e;_rel;_cb=[];_t=0;_u=0;_ch=this;_cu=this;_lc;constructor(e,s,i,o,r){this._o=e,this._p=s,this._x=i,this._d=o,this._e=r,this._w=0}start(e){this.running||this.stop(),this._cu.stop(!1),this._ch=this._cu=this;let s=this._o[this._p]||0,i=this._rel?s+this._x:this._x;return this._lc=this._lc||e||globalThis,this._u=this._lc.listen("update",o=>{if(this._t<=this._w){this._t+=o;return}let r=this._t-this._w;this._o[this._p]=this._lc.lerp(s,i,this._e(r/this._d)),this._t+=o,r>=this._d&&(this._o[this._p]=i,this.stop())}),this.running=!0,this}onEnd(e){return this._cb.push(e),this}stop(e=!0){if(!(!this.running||!this._u)){if(this.running=!1,this._u(),this._t=0,e)for(let s of this._cb)s(this._o);return this}}chain(e){return this._ch.onEnd(()=>{this._cu=e.start(this._lc)}),this._ch=e,this}reset(){return this._cb.length=0,this.stop()}relative(e=!0){return this._rel=e,this}delay(e){return this._w=e,this}get current(){return this._cu}get progress(){return this.running&&this._t>this._w?(this._t-this._w)/this._d:0}};globalThis.utils=Object.assign(globalThis.utils||{},c);})();
|
package/package.json
CHANGED
package/src/tween/index.js
CHANGED
|
@@ -86,6 +86,8 @@ class TweenController {
|
|
|
86
86
|
_x
|
|
87
87
|
/** @type {number} */
|
|
88
88
|
_d
|
|
89
|
+
/** @type {number} */
|
|
90
|
+
_w
|
|
89
91
|
/** @type {(x: number) => number} */
|
|
90
92
|
_e
|
|
91
93
|
/** @type {boolean} */
|
|
@@ -117,6 +119,7 @@ class TweenController {
|
|
|
117
119
|
this._x = toValue
|
|
118
120
|
this._d = duration
|
|
119
121
|
this._e = easing
|
|
122
|
+
this._w = 0
|
|
120
123
|
}
|
|
121
124
|
|
|
122
125
|
/**
|
|
@@ -137,13 +140,17 @@ class TweenController {
|
|
|
137
140
|
this._lc = this._lc || engine || globalThis
|
|
138
141
|
|
|
139
142
|
this._u = this._lc.listen("update", (dt) => {
|
|
140
|
-
this.
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
143
|
+
if (this._t <= this._w) {
|
|
144
|
+
this._t += dt
|
|
145
|
+
return
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
const t = this._t - this._w
|
|
149
|
+
this._o[this._p] = this._lc.lerp(fromValue, toValue, this._e(t / this._d))
|
|
150
|
+
|
|
145
151
|
this._t += dt
|
|
146
|
-
|
|
152
|
+
|
|
153
|
+
if (t >= this._d) {
|
|
147
154
|
this._o[this._p] = toValue
|
|
148
155
|
this.stop()
|
|
149
156
|
}
|
|
@@ -156,6 +163,7 @@ class TweenController {
|
|
|
156
163
|
|
|
157
164
|
/**
|
|
158
165
|
* @param {Function} callback
|
|
166
|
+
* @returns {this}
|
|
159
167
|
*/
|
|
160
168
|
onEnd(callback) {
|
|
161
169
|
this._cb.push(callback)
|
|
@@ -164,7 +172,7 @@ class TweenController {
|
|
|
164
172
|
|
|
165
173
|
/**
|
|
166
174
|
* @param {boolean} completed if `false` don't call the `onEnd()` registered callbacks.
|
|
167
|
-
* @returns
|
|
175
|
+
* @returns {this}
|
|
168
176
|
*/
|
|
169
177
|
stop(completed = true) {
|
|
170
178
|
if (!this.running || !this._u) return
|
|
@@ -185,7 +193,7 @@ class TweenController {
|
|
|
185
193
|
|
|
186
194
|
/**
|
|
187
195
|
* @param {TweenController} another
|
|
188
|
-
* @returns {
|
|
196
|
+
* @returns {this}
|
|
189
197
|
*/
|
|
190
198
|
chain(another) {
|
|
191
199
|
this._ch.onEnd(() => {
|
|
@@ -195,26 +203,49 @@ class TweenController {
|
|
|
195
203
|
return this
|
|
196
204
|
}
|
|
197
205
|
|
|
206
|
+
/**
|
|
207
|
+
* @param {boolean} [flag=true]
|
|
208
|
+
* @returns {this}
|
|
209
|
+
*/
|
|
198
210
|
reset() {
|
|
199
211
|
this._cb.length = 0
|
|
200
212
|
return this.stop()
|
|
201
213
|
}
|
|
202
214
|
|
|
215
|
+
/**
|
|
216
|
+
* @param {boolean} [flag=true]
|
|
217
|
+
* @returns {this}
|
|
218
|
+
*/
|
|
203
219
|
relative(flag = true) {
|
|
204
220
|
this._rel = flag
|
|
205
221
|
return this
|
|
206
222
|
}
|
|
207
223
|
|
|
224
|
+
/**
|
|
225
|
+
* @param {number} value
|
|
226
|
+
* @returns {this}
|
|
227
|
+
*/
|
|
228
|
+
delay(value) {
|
|
229
|
+
this._w = value
|
|
230
|
+
return this
|
|
231
|
+
}
|
|
232
|
+
|
|
208
233
|
/**
|
|
209
234
|
* Returns the current tween of the chain.
|
|
210
235
|
*
|
|
211
|
-
* @returns {
|
|
236
|
+
* @returns {this}
|
|
212
237
|
*/
|
|
213
238
|
get current() {
|
|
214
239
|
return this._cu
|
|
215
240
|
}
|
|
216
241
|
|
|
242
|
+
/**
|
|
243
|
+
* @returns {number} the current progress (0..1)
|
|
244
|
+
*/
|
|
217
245
|
get progress() {
|
|
218
|
-
|
|
246
|
+
if (this.running && this._t > this._w) {
|
|
247
|
+
return (this._t - this._w) / this._d
|
|
248
|
+
}
|
|
249
|
+
return 0
|
|
219
250
|
}
|
|
220
251
|
}
|