litecanvas 0.93.0 → 0.93.2
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/README.md +1 -1
- package/dist/dist.dev.js +13 -7
- package/dist/dist.js +12 -6
- package/dist/dist.min.js +1 -1
- package/package.json +3 -3
- package/src/index.js +18 -10
- package/src/version.js +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Litecanvas
|
|
4
4
|
|
|
5
|
-
[](https://www.npmjs.com/package/litecanvas/)
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
|
|
8
8
|
Litecanvas is a lightweight HTML5 canvas 2D engine suitable for small web games, prototypes, game jams, animations, creative coding, learning game programming and game design, etc.
|
package/dist/dist.dev.js
CHANGED
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
};
|
|
33
33
|
|
|
34
34
|
// src/version.js
|
|
35
|
-
var version = "0.93.
|
|
35
|
+
var version = "0.93.2";
|
|
36
36
|
|
|
37
37
|
// src/index.js
|
|
38
38
|
function litecanvas(settings = {}) {
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
animate: true
|
|
53
53
|
};
|
|
54
54
|
settings = Object.assign(defaults, settings);
|
|
55
|
-
let _initialized = false, _plugins = [], _canvas, _scale = 1, _ctx, _outline_fix = 0.5, _timeScale = 1, _lastFrameTime, _deltaTime = 1 / 60, _accumulated
|
|
55
|
+
let _initialized = false, _plugins = [], _canvas, _scale = 1, _ctx, _outline_fix = 0.5, _timeScale = 1, _lastFrameTime, _deltaTime = 1 / 60, _accumulated, _rafid, _fontFamily = "sans-serif", _fontSize = 20, _rngSeed = Date.now(), _colors = defaultPalette, _defaultSound = [0.5, 0, 1750, , , 0.3, 1, , , , 600, 0.1], _coreEvents = "init,update,draw,tap,untap,tapping,tapped,resized", _mathFunctions = "PI,sin,cos,atan2,hypot,tan,abs,ceil,floor,trunc,min,max,pow,sqrt,sign,exp", _eventListeners = {};
|
|
56
56
|
const instance = {
|
|
57
57
|
/** @type {number} */
|
|
58
58
|
W: 0,
|
|
@@ -1027,7 +1027,9 @@
|
|
|
1027
1027
|
* Resumes (if paused) the engine loop.
|
|
1028
1028
|
*/
|
|
1029
1029
|
resume() {
|
|
1030
|
-
if (
|
|
1030
|
+
if (_initialized && !_rafid) {
|
|
1031
|
+
_accumulated = _deltaTime;
|
|
1032
|
+
_lastFrameTime = performance.now();
|
|
1031
1033
|
_rafid = raf(drawFrame);
|
|
1032
1034
|
}
|
|
1033
1035
|
},
|
|
@@ -1276,14 +1278,21 @@
|
|
|
1276
1278
|
}
|
|
1277
1279
|
);
|
|
1278
1280
|
}
|
|
1281
|
+
setInterval(() => {
|
|
1282
|
+
if (_rafid) {
|
|
1283
|
+
instance.pause();
|
|
1284
|
+
instance.resume();
|
|
1285
|
+
}
|
|
1286
|
+
}, 5e3);
|
|
1279
1287
|
_initialized = true;
|
|
1280
1288
|
instance.emit("init", instance);
|
|
1281
|
-
_lastFrameTime = performance.now();
|
|
1282
1289
|
instance.resume();
|
|
1283
1290
|
}
|
|
1284
1291
|
function drawFrame(now) {
|
|
1285
1292
|
if (!settings.animate) {
|
|
1286
1293
|
return instance.emit("draw");
|
|
1294
|
+
} else if (_rafid) {
|
|
1295
|
+
_rafid = raf(drawFrame);
|
|
1287
1296
|
}
|
|
1288
1297
|
let updated = 0;
|
|
1289
1298
|
let frameTime = (now - _lastFrameTime) / 1e3;
|
|
@@ -1300,9 +1309,6 @@
|
|
|
1300
1309
|
if (updated) {
|
|
1301
1310
|
instance.emit("draw");
|
|
1302
1311
|
}
|
|
1303
|
-
if (_rafid) {
|
|
1304
|
-
_rafid = raf(drawFrame);
|
|
1305
|
-
}
|
|
1306
1312
|
}
|
|
1307
1313
|
function setupCanvas() {
|
|
1308
1314
|
if ("string" === typeof settings.canvas) {
|
package/dist/dist.js
CHANGED
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
animate: true
|
|
45
45
|
};
|
|
46
46
|
settings = Object.assign(defaults, settings);
|
|
47
|
-
let _initialized = false, _plugins = [], _canvas, _scale = 1, _ctx, _outline_fix = 0.5, _timeScale = 1, _lastFrameTime, _deltaTime = 1 / 60, _accumulated
|
|
47
|
+
let _initialized = false, _plugins = [], _canvas, _scale = 1, _ctx, _outline_fix = 0.5, _timeScale = 1, _lastFrameTime, _deltaTime = 1 / 60, _accumulated, _rafid, _fontFamily = "sans-serif", _fontSize = 20, _rngSeed = Date.now(), _colors = defaultPalette, _defaultSound = [0.5, 0, 1750, , , 0.3, 1, , , , 600, 0.1], _coreEvents = "init,update,draw,tap,untap,tapping,tapped,resized", _mathFunctions = "PI,sin,cos,atan2,hypot,tan,abs,ceil,floor,trunc,min,max,pow,sqrt,sign,exp", _eventListeners = {};
|
|
48
48
|
const instance = {
|
|
49
49
|
/** @type {number} */
|
|
50
50
|
W: 0,
|
|
@@ -731,7 +731,9 @@
|
|
|
731
731
|
* Resumes (if paused) the engine loop.
|
|
732
732
|
*/
|
|
733
733
|
resume() {
|
|
734
|
-
if (
|
|
734
|
+
if (_initialized && !_rafid) {
|
|
735
|
+
_accumulated = _deltaTime;
|
|
736
|
+
_lastFrameTime = performance.now();
|
|
735
737
|
_rafid = raf(drawFrame);
|
|
736
738
|
}
|
|
737
739
|
},
|
|
@@ -969,14 +971,21 @@
|
|
|
969
971
|
}
|
|
970
972
|
);
|
|
971
973
|
}
|
|
974
|
+
setInterval(() => {
|
|
975
|
+
if (_rafid) {
|
|
976
|
+
instance.pause();
|
|
977
|
+
instance.resume();
|
|
978
|
+
}
|
|
979
|
+
}, 5e3);
|
|
972
980
|
_initialized = true;
|
|
973
981
|
instance.emit("init", instance);
|
|
974
|
-
_lastFrameTime = performance.now();
|
|
975
982
|
instance.resume();
|
|
976
983
|
}
|
|
977
984
|
function drawFrame(now) {
|
|
978
985
|
if (!settings.animate) {
|
|
979
986
|
return instance.emit("draw");
|
|
987
|
+
} else if (_rafid) {
|
|
988
|
+
_rafid = raf(drawFrame);
|
|
980
989
|
}
|
|
981
990
|
let updated = 0;
|
|
982
991
|
let frameTime = (now - _lastFrameTime) / 1e3;
|
|
@@ -993,9 +1002,6 @@
|
|
|
993
1002
|
if (updated) {
|
|
994
1003
|
instance.emit("draw");
|
|
995
1004
|
}
|
|
996
|
-
if (_rafid) {
|
|
997
|
-
_rafid = raf(drawFrame);
|
|
998
|
-
}
|
|
999
1005
|
}
|
|
1000
1006
|
function setupCanvas() {
|
|
1001
1007
|
if ("string" === typeof settings.canvas) {
|
package/dist/dist.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var e=["#111","#6a7799","#aec2c2","#FFF1E8","#e83b3b","#fabc20","#155fd9","#3cbcfc","#327345","#63c64d","#6c2c1f","#ac7c00"];globalThis.litecanvas=function(t={}){let a=window,i=Math,l=2*i.PI,n=requestAnimationFrame,o=[],r=(e,t,a)=>{e.addEventListener(t,a,!1),o.push(()=>e.removeEventListener(t,a,!1))},s=e=>e.beginPath(),f=(e=>{let t=new AudioContext;return e.zzfxV=1,(a=1,i=.05,l=220,n=0,o=0,r=.1,s=0,f=1,c=0,d=0,u=0,p=0,m=0,h=0,g=0,w=0,v=0,x=1,y=0,b=0,k=0)=>{let E=Math,z=2*E.PI,
|
|
1
|
+
(()=>{var e=["#111","#6a7799","#aec2c2","#FFF1E8","#e83b3b","#fabc20","#155fd9","#3cbcfc","#327345","#63c64d","#6c2c1f","#ac7c00"];globalThis.litecanvas=function(t={}){let a=window,i=Math,l=2*i.PI,n=requestAnimationFrame,o=[],r=(e,t,a)=>{e.addEventListener(t,a,!1),o.push(()=>e.removeEventListener(t,a,!1))},s=e=>e.beginPath(),f=(e=>{let t=new AudioContext;return e.zzfxV=1,(a=1,i=.05,l=220,n=0,o=0,r=.1,s=0,f=1,c=0,d=0,u=0,p=0,m=0,h=0,g=0,w=0,v=0,x=1,y=0,b=0,k=0)=>{let E=Math,z=2*E.PI,I=c*=500*z/44100/44100,T=l*=(1-i+2*i*E.random(i=[]))*z/44100,C=0,A=0,L=0,S=1,M=0,N=0,P=0,D=k<0?-1:1,F=z*D*k*2/44100,q=E.cos(F),B=E.sin,H=B(F)/4,O=1+H,V=-2*q/O,W=(1-H)/O,R=(1+D*q)/2/O,G=-(D+q)/O,X=0,Y=0,$=0,j=0;for(n=44100*n+9,y*=44100,o*=44100,r*=44100,v*=44100,d*=500*z/85766121e6,g*=z/44100,u*=z/44100,p*=44100,m=44100*m|0,a*=.3*e.zzfxV,D=n+y+o+r+v|0;L<D;i[L++]=P*a)++N%(100*w|0)||(P=s?1<s?2<s?3<s?B(C*C):E.max(E.min(E.tan(C),1),-1):1-(2*C/z%2+2)%2:1-4*E.abs(E.round(C/z)-C/z):B(C),P=(m?1-b+b*B(z*L/m):1)*(P<0?-1:1)*E.abs(P)**f*(L<n?L/n:L<n+y?1-(L-n)/y*(1-x):L<n+y+o?x:L<D-v?(D-L-v)/r*x:0),P=v?P/2+(v>L?0:(L<D-v?1:(D-L)/v)*i[L-v|0]/2/a):P,k&&(P=j=R*X+G*(X=Y)+R*(Y=P)-W*$-V*($=j))),C+=(F=(l+=c+=d)*E.cos(g*A++))+F*h*B(L**5),S&&++S>p&&(l+=u,T+=u,S=0),!m||++M%m||(l=T,c=I,S=S||1);(a=t.createBuffer(1,D,44100)).getChannelData(0).set(i),(l=t.createBufferSource()).buffer=a,l.connect(t.destination),l.start()}})(a);t=Object.assign({width:null,height:null,autoscale:!0,pixelart:!1,canvas:null,global:!0,loop:null,tapEvents:!0,keyboardEvents:!0,animate:!0},t);let c=!1,d=[],u,p=1,m,h=.5,g=1,w,v=1/60,x,y,b="sans-serif",k=20,E=Date.now(),z=e,I=[.5,0,1750,,,.3,1,,,,600,.1],T={},C={W:0,H:0,T:0,MX:-1,MY:-1,TWO_PI:l,HALF_PI:l/4,lerp:(e,t,a)=>a*(t-e)+e,deg2rad:e=>i.PI/180*e,rad2deg:e=>180/i.PI*e,round:(e,t=0)=>{if(!t)return i.round(e);let a=10**t;return i.round(e*a)/a},clamp:(e,t,a)=>e<t?t:e>a?a:e,wrap:(e,t,a)=>e-(a-t)*i.floor((e-t)/(a-t)),map(e,t,a,i,l,n){let o=(e-t)/(a-t)*(l-i)+i;return n?C.clamp(o,i,l):o},norm:(e,t,a)=>C.map(e,t,a,0,1),wave:(e,t,a,i=Math.sin)=>e+(i(a)+1)/2*(t-e),rand:(e=0,t=1)=>(E=(1664525*E+0x3c6ef35f)%0x100000000)/0x100000000*(t-e)+e,randi:(e=0,t=1)=>i.floor(C.rand(e,t+1)),rseed(e){E=~~e},cls(e){null==e?m.clearRect(0,0,m.canvas.width,m.canvas.height):C.rectfill(0,0,m.canvas.width,m.canvas.height,e)},rect(e,t,a,i,l,n){s(m),m[n?"roundRect":"rect"](~~e-h,~~t-h,~~a+2*h,~~i+2*h,n),C.stroke(l)},rectfill(e,t,a,i,l,n){s(m),m[n?"roundRect":"rect"](~~e,~~t,~~a,~~i,n),C.fill(l)},circ(e,t,a,i){s(m),m.arc(~~e,~~t,~~a,0,l),C.stroke(i)},circfill(e,t,a,i){s(m),m.arc(~~e,~~t,~~a,0,l),C.fill(i)},oval(e,t,a,i,n){s(m),m.ellipse(~~e,~~t,~~a,~~i,0,0,l),C.stroke(n)},ovalfill(e,t,a,i,n){s(m),m.ellipse(~~e,~~t,~~a,~~i,0,0,l),C.fill(n)},line(e,t,a,i,l){s(m);let n=.5*(0!==h&&~~e==~~a),o=.5*(0!==h&&~~t==~~i);m.moveTo(~~e+n,~~t+o),m.lineTo(~~a+n,~~i+o),C.stroke(l)},linewidth(e){m.lineWidth=~~e,h=.5*(0!=~~e%2)},linedash(e,t=0){m.setLineDash(e),m.lineDashOffset=t},text(e,t,a,i=3,l="normal"){m.font=`${l} ${k}px ${b}`,m.fillStyle=z[~~i%z.length],m.fillText(a,~~e,~~t)},textfont(e){b=e},textsize(e){k=e},textalign(e,t){e&&(m.textAlign=e),t&&(m.textBaseline=t)},image(e,t,a){m.drawImage(a,~~e,~~t)},paint(e,t,a,i={}){let l=i.canvas||new OffscreenCanvas(1,1),n=i.scale||1,o=m;if(l.width=e*n,l.height=t*n,(m=l.getContext("2d")).scale(n,n),Array.isArray(a)){let e=0,t=0;for(let i of(m.imageSmoothingEnabled=!1,a)){for(let a of i)" "!==a&&"."!==a&&C.rectfill(e,t,1,1,parseInt(a,16)),e++;t++,e=0}}else a(m);return m=o,l.transferToImageBitmap()},ctx:e=>(e&&(m=e),m),push:()=>m.save(),pop:()=>m.restore(),translate:(e,t)=>m.translate(~~e,~~t),scale:(e,t)=>m.scale(e,t||e),rotate:e=>m.rotate(e),alpha(e){m.globalAlpha=C.clamp(e,0,1)},fill(e){m.fillStyle=z[~~e%z.length],m.fill()},stroke(e){m.strokeStyle=z[~~e%z.length],m.stroke()},clip(e){s(m),e(m),m.clip()},sfx:(e,t=0,i=1)=>!!a.zzfxV&&(!navigator.userActivation||!!navigator.userActivation.hasBeenActive)&&(e=e||I,(0!==t||1!==i)&&((e=e.slice())[0]=i*(e[0]||1),e[10]=~~e[10]+t),f.apply(0,e),e),volume(e){a.zzfxV=e},canvas:()=>u,use(e,t={}){c?N(e,t):d.push([e,t])},listen:(e,t)=>(T[e=e.toLowerCase()]=T[e]||new Set,T[e].add(t),()=>T&&T[e].delete(t)),emit(e,t,a,i,l){c&&(M("before:"+(e=e.toLowerCase()),t,a,i,l),M(e,t,a,i,l),M("after:"+e,t,a,i,l))},pal(t=e){z=t},def(e,i){C[e]=i,t.global&&(a[e]=i)},timescale(e){g=e},framerate(e){v=1/~~e},stat(e){let i={index:e,value:[t,c,v,p,T,z,I,g,a.zzfxV,E,k,b][e]};return C.emit("stat",i),i.value},quit(){for(let e of(C.pause(),C.emit("quit"),T={},o))e();if(t.global){for(let e in C)delete a[e];delete a.ENGINE}c=!1},pause(){cancelAnimationFrame(y),y=0},resume(){c&&!y&&(x=v,w=performance.now(),y=n(L))},paused:()=>!y};for(let e of"PI,sin,cos,atan2,hypot,tan,abs,ceil,floor,trunc,min,max,pow,sqrt,sign,exp".split(","))C[e]=i[e];function A(){let e=t.loop?t.loop:a;for(let t of"init,update,draw,tap,untap,tapping,tapped,resized".split(","))e[t]&&C.listen(t,e[t]);for(let[e,t]of d)N(e,t);if(t.autoscale&&r(a,"resize",S),t.tapEvents){let e=e=>[(e.pageX-u.offsetLeft)/p,(e.pageY-u.offsetTop)/p],t=new Map,i=(e,a,i)=>{let l={x:a,y:i,xi:a,yi:i,t:performance.now()};return t.set(e,l),l},l=(e,a,l)=>{let n=t.get(e)||i(e);n.x=a,n.y=l},n=e=>e&&performance.now()-e.t<=300,o=e=>e.preventDefault(),s=!1;r(u,"mousedown",t=>{if(0===t.button){o(t);let[a,l]=e(t);C.emit("tap",a,l,0),i(0,a,l),s=!0}}),r(u,"mouseup",a=>{if(0===a.button){o(a);let i=t.get(0),[l,r]=e(a);n(i)&&C.emit("tapped",i.xi,i.yi,0),C.emit("untap",l,r,0),t.delete(0),s=!1}}),r(a,"mousemove",t=>{o(t);let[a,i]=e(t);C.def("MX",a),C.def("MY",i),s&&(C.emit("tapping",a,i,0),l(0,a,i))}),r(u,"touchstart",t=>{for(let a of(o(t),t.changedTouches)){let[t,l]=e(a);C.emit("tap",t,l,a.identifier+1),i(a.identifier+1,t,l)}}),r(u,"touchmove",t=>{for(let a of(o(t),t.changedTouches)){let[t,i]=e(a);C.emit("tapping",t,i,a.identifier+1),l(a.identifier+1,t,i)}});let f=e=>{o(e);let a=[];if(e.targetTouches.length>0)for(let t of e.targetTouches)a.push(t.identifier+1);for(let[e,i]of t)a.includes(e)||(n(i)&&C.emit("tapped",i.xi,i.yi,e),C.emit("untap",i.x,i.y,e),t.delete(e))};r(u,"touchend",f),r(u,"touchcancel",f),r(a,"blur",()=>{for(let[e,a]of(s=!1,t))C.emit("untap",a.x,a.y,e),t.delete(e)})}if(t.keyboardEvents){let e=new Set,t=new Set,i=(e,t="")=>(t=t.toLowerCase())?e.has("space"===t?" ":t):e.size>0;r(a,"keydown",a=>{let i=a.key.toLowerCase();e.has(i)||(e.add(i),t.add(i))}),r(a,"keyup",t=>{e.delete(t.key.toLowerCase())}),r(a,"blur",()=>e.clear()),C.listen("after:update",()=>t.clear()),C.def("iskeydown",t=>i(e,t)),C.def("iskeypressed",e=>i(t,e))}setInterval(()=>{y&&(C.pause(),C.resume())},5e3),c=!0,C.emit("init",C),C.resume()}function L(e){if(!t.animate)return C.emit("draw");y&&(y=n(L));let a=0,i=(e-w)/1e3;if(w=e,i<.1)for(x+=i;x>=v;)a++,C.emit("update",v*g,a),C.def("T",C.T+v*g),x-=v;a&&C.emit("draw")}function S(){let e=t.width>0?t.width:innerWidth,a=t.width>0?t.height||t.width:innerHeight;if(C.def("W",e),C.def("H",a),u.width=e,u.height=a,t.autoscale){let l=+t.autoscale;u.style.display||(u.style.display="block",u.style.margin="auto"),p=i.min(innerWidth/e,innerHeight/a),p=l>1&&p>l?l:p,u.style.width=e*p+"px",u.style.height=a*p+"px"}t.pixelart&&(m.imageSmoothingEnabled=!1,u.style.imageRendering="pixelated"),C.textalign("start","top"),C.emit("resized",p),C.cls(0),t.animate||n(L)}function M(e,t,a,i,l){if(T[e])for(let n of T[e])n(t,a,i,l)}function N(e,t){let a=e(C,t);for(let e in a)C.def(e,a[e])}if(t.global){if(a.ENGINE)throw Error("only one global litecanvas is allowed");Object.assign(a,C),a.ENGINE=C}return m=(u=(u="string"==typeof t.canvas?document.querySelector(t.canvas):t.canvas)||document.createElement("canvas")).getContext("2d"),r(u,"click",()=>focus()),u.style="",S(),u.parentNode||document.body.appendChild(u),u.oncontextmenu=()=>!1,"loading"===document.readyState?r(a,"DOMContentLoaded",()=>n(A)):n(A),C}})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "litecanvas",
|
|
3
|
-
"version": "0.93.
|
|
3
|
+
"version": "0.93.2",
|
|
4
4
|
"description": "Lightweight HTML5 canvas 2D game engine suitable for small projects and creative coding. Inspired by PICO-8 and P5/Processing.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Luiz Bills <luizbills@pm.me>",
|
|
@@ -33,10 +33,10 @@
|
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@litecanvas/jsdom-extras": "^2.0.1",
|
|
35
35
|
"@size-limit/preset-small-lib": "^11.2.0",
|
|
36
|
-
"@swc/core": "^1.13.
|
|
36
|
+
"@swc/core": "^1.13.1",
|
|
37
37
|
"@types/jsdom": "^21.1.7",
|
|
38
38
|
"ava": "^6.4.1",
|
|
39
|
-
"esbuild": "^0.25.
|
|
39
|
+
"esbuild": "^0.25.8",
|
|
40
40
|
"genversion": "^3.2.0",
|
|
41
41
|
"gzip-size": "^7.0.0",
|
|
42
42
|
"jsdom": "^26.1.0",
|
package/src/index.js
CHANGED
|
@@ -63,7 +63,7 @@ export default function litecanvas(settings = {}) {
|
|
|
63
63
|
/** @type {number} duration of a frame at 60 FPS (default) */
|
|
64
64
|
_deltaTime = 1 / 60,
|
|
65
65
|
/** @type {number} */
|
|
66
|
-
_accumulated
|
|
66
|
+
_accumulated,
|
|
67
67
|
/** @type {number?} */
|
|
68
68
|
_rafid,
|
|
69
69
|
/** @type {string} */
|
|
@@ -1209,7 +1209,9 @@ export default function litecanvas(settings = {}) {
|
|
|
1209
1209
|
* Resumes (if paused) the engine loop.
|
|
1210
1210
|
*/
|
|
1211
1211
|
resume() {
|
|
1212
|
-
if (
|
|
1212
|
+
if (_initialized && !_rafid) {
|
|
1213
|
+
_accumulated = _deltaTime
|
|
1214
|
+
_lastFrameTime = performance.now()
|
|
1213
1215
|
_rafid = raf(drawFrame)
|
|
1214
1216
|
}
|
|
1215
1217
|
},
|
|
@@ -1504,11 +1506,18 @@ export default function litecanvas(settings = {}) {
|
|
|
1504
1506
|
)
|
|
1505
1507
|
}
|
|
1506
1508
|
|
|
1509
|
+
// this seems to solve a wierd bug that drop the FPS
|
|
1510
|
+
// when switching tabs in the browser
|
|
1511
|
+
setInterval(() => {
|
|
1512
|
+
if (_rafid) {
|
|
1513
|
+
instance.pause()
|
|
1514
|
+
instance.resume()
|
|
1515
|
+
}
|
|
1516
|
+
}, 5000)
|
|
1517
|
+
|
|
1507
1518
|
// start the engine
|
|
1508
1519
|
_initialized = true
|
|
1509
1520
|
instance.emit('init', instance)
|
|
1510
|
-
|
|
1511
|
-
_lastFrameTime = performance.now()
|
|
1512
1521
|
instance.resume()
|
|
1513
1522
|
}
|
|
1514
1523
|
|
|
@@ -1519,6 +1528,11 @@ export default function litecanvas(settings = {}) {
|
|
|
1519
1528
|
if (!settings.animate) {
|
|
1520
1529
|
return instance.emit('draw')
|
|
1521
1530
|
}
|
|
1531
|
+
// request the next frame
|
|
1532
|
+
// only when the engine loop are not paused (_rafid >= 1)
|
|
1533
|
+
else if (_rafid) {
|
|
1534
|
+
_rafid = raf(drawFrame)
|
|
1535
|
+
}
|
|
1522
1536
|
|
|
1523
1537
|
let updated = 0
|
|
1524
1538
|
let frameTime = (now - _lastFrameTime) / 1000
|
|
@@ -1538,12 +1552,6 @@ export default function litecanvas(settings = {}) {
|
|
|
1538
1552
|
if (updated) {
|
|
1539
1553
|
instance.emit('draw')
|
|
1540
1554
|
}
|
|
1541
|
-
|
|
1542
|
-
// request the next frame
|
|
1543
|
-
// only when the engine loop are not paused (_rafid >= 1)
|
|
1544
|
-
if (_rafid) {
|
|
1545
|
-
_rafid = raf(drawFrame)
|
|
1546
|
-
}
|
|
1547
1555
|
}
|
|
1548
1556
|
|
|
1549
1557
|
function setupCanvas() {
|
package/src/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Generated by genversion.
|
|
2
|
-
export const version = '0.93.
|
|
2
|
+
export const version = '0.93.2'
|