litecanvas 0.88.0 → 0.89.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/dist.dev.js +20 -10
- package/dist/dist.js +18 -8
- package/dist/dist.min.js +1 -1
- package/package.json +2 -2
- package/src/index.js +19 -9
- package/src/version.js +2 -0
package/dist/dist.dev.js
CHANGED
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
if (!condition) throw new Error(message);
|
|
32
32
|
};
|
|
33
33
|
|
|
34
|
-
// version.js
|
|
35
|
-
var version = "0.
|
|
34
|
+
// src/version.js
|
|
35
|
+
var version = "0.89.0";
|
|
36
36
|
|
|
37
37
|
// src/index.js
|
|
38
38
|
function litecanvas(settings = {}) {
|
|
@@ -1075,12 +1075,16 @@
|
|
|
1075
1075
|
*/
|
|
1076
1076
|
(id, x, y) => {
|
|
1077
1077
|
const tap = {
|
|
1078
|
+
// current x
|
|
1078
1079
|
x,
|
|
1080
|
+
// current y
|
|
1079
1081
|
y,
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
+
// initial x
|
|
1083
|
+
xi: x,
|
|
1084
|
+
// initial y
|
|
1085
|
+
yi: y,
|
|
1082
1086
|
// timestamp
|
|
1083
|
-
|
|
1087
|
+
t: performance.now()
|
|
1084
1088
|
};
|
|
1085
1089
|
_taps.set(id, tap);
|
|
1086
1090
|
return tap;
|
|
@@ -1098,10 +1102,15 @@
|
|
|
1098
1102
|
}
|
|
1099
1103
|
), _checkTapped = (
|
|
1100
1104
|
/**
|
|
1101
|
-
* @param {{
|
|
1105
|
+
* @param {{t: number}} tap
|
|
1102
1106
|
*/
|
|
1103
|
-
(tap) => tap && performance.now() - tap.
|
|
1104
|
-
), preventDefault = (
|
|
1107
|
+
(tap) => tap && performance.now() - tap.t <= 300
|
|
1108
|
+
), preventDefault = (
|
|
1109
|
+
/**
|
|
1110
|
+
* @param {Event} ev
|
|
1111
|
+
*/
|
|
1112
|
+
(ev) => ev.preventDefault()
|
|
1113
|
+
);
|
|
1105
1114
|
let _pressingMouse = false;
|
|
1106
1115
|
on(
|
|
1107
1116
|
_canvas,
|
|
@@ -1131,7 +1140,7 @@
|
|
|
1131
1140
|
const tap = _taps.get(0);
|
|
1132
1141
|
const [x, y] = _getXY(ev.pageX, ev.pageY);
|
|
1133
1142
|
if (_checkTapped(tap)) {
|
|
1134
|
-
instance.emit("tapped", tap.
|
|
1143
|
+
instance.emit("tapped", tap.xi, tap.yi, 0);
|
|
1135
1144
|
}
|
|
1136
1145
|
instance.emit("untap", x, y, 0);
|
|
1137
1146
|
_taps.delete(0);
|
|
@@ -1198,7 +1207,7 @@
|
|
|
1198
1207
|
for (const [id, tap] of _taps) {
|
|
1199
1208
|
if (existing.includes(id)) continue;
|
|
1200
1209
|
if (_checkTapped(tap)) {
|
|
1201
|
-
instance.emit("tapped", tap.
|
|
1210
|
+
instance.emit("tapped", tap.xi, tap.yi, id);
|
|
1202
1211
|
}
|
|
1203
1212
|
instance.emit("untap", tap.x, tap.y, id);
|
|
1204
1213
|
_taps.delete(id);
|
|
@@ -1319,6 +1328,7 @@
|
|
|
1319
1328
|
if (!_canvas.parentNode) {
|
|
1320
1329
|
document.body.appendChild(_canvas);
|
|
1321
1330
|
}
|
|
1331
|
+
_canvas.oncontextmenu = () => false;
|
|
1322
1332
|
}
|
|
1323
1333
|
function resizeCanvas() {
|
|
1324
1334
|
DEV: assert(
|
package/dist/dist.js
CHANGED
|
@@ -781,12 +781,16 @@
|
|
|
781
781
|
*/
|
|
782
782
|
(id, x, y) => {
|
|
783
783
|
const tap = {
|
|
784
|
+
// current x
|
|
784
785
|
x,
|
|
786
|
+
// current y
|
|
785
787
|
y,
|
|
786
|
-
|
|
787
|
-
|
|
788
|
+
// initial x
|
|
789
|
+
xi: x,
|
|
790
|
+
// initial y
|
|
791
|
+
yi: y,
|
|
788
792
|
// timestamp
|
|
789
|
-
|
|
793
|
+
t: performance.now()
|
|
790
794
|
};
|
|
791
795
|
_taps.set(id, tap);
|
|
792
796
|
return tap;
|
|
@@ -804,10 +808,15 @@
|
|
|
804
808
|
}
|
|
805
809
|
), _checkTapped = (
|
|
806
810
|
/**
|
|
807
|
-
* @param {{
|
|
811
|
+
* @param {{t: number}} tap
|
|
808
812
|
*/
|
|
809
|
-
(tap) => tap && performance.now() - tap.
|
|
810
|
-
), preventDefault = (
|
|
813
|
+
(tap) => tap && performance.now() - tap.t <= 300
|
|
814
|
+
), preventDefault = (
|
|
815
|
+
/**
|
|
816
|
+
* @param {Event} ev
|
|
817
|
+
*/
|
|
818
|
+
(ev) => ev.preventDefault()
|
|
819
|
+
);
|
|
811
820
|
let _pressingMouse = false;
|
|
812
821
|
on(
|
|
813
822
|
_canvas,
|
|
@@ -837,7 +846,7 @@
|
|
|
837
846
|
const tap = _taps.get(0);
|
|
838
847
|
const [x, y] = _getXY(ev.pageX, ev.pageY);
|
|
839
848
|
if (_checkTapped(tap)) {
|
|
840
|
-
instance.emit("tapped", tap.
|
|
849
|
+
instance.emit("tapped", tap.xi, tap.yi, 0);
|
|
841
850
|
}
|
|
842
851
|
instance.emit("untap", x, y, 0);
|
|
843
852
|
_taps.delete(0);
|
|
@@ -904,7 +913,7 @@
|
|
|
904
913
|
for (const [id, tap] of _taps) {
|
|
905
914
|
if (existing.includes(id)) continue;
|
|
906
915
|
if (_checkTapped(tap)) {
|
|
907
|
-
instance.emit("tapped", tap.
|
|
916
|
+
instance.emit("tapped", tap.xi, tap.yi, id);
|
|
908
917
|
}
|
|
909
918
|
instance.emit("untap", tap.x, tap.y, id);
|
|
910
919
|
_taps.delete(id);
|
|
@@ -1009,6 +1018,7 @@
|
|
|
1009
1018
|
if (!_canvas.parentNode) {
|
|
1010
1019
|
document.body.appendChild(_canvas);
|
|
1011
1020
|
}
|
|
1021
|
+
_canvas.oncontextmenu = () => false;
|
|
1012
1022
|
}
|
|
1013
1023
|
function resizeCanvas() {
|
|
1014
1024
|
const width = settings.width || root.innerWidth, height = settings.height || settings.width || root.innerHeight;
|
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,
|
|
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,p=0,u=0,m=0,g=0,h=0,x=0,v=0,w=1,y=0,b=0,k=0)=>{let E=Math,z=2*E.PI,T=c*=500*z/44100/44100,C=l*=(1-i+2*i*E.random(i=[]))*z/44100,I=0,A=0,L=0,S=1,M=0,N=0,P=0,X=k<0?-1:1,Y=z*X*k*2/44100,D=E.cos(Y),F=E.sin,q=F(Y)/4,B=1+q,H=-2*D/B,O=(1-q)/B,V=(1+X*D)/2/B,W=-(X+D)/B,R=0,G=0,$=0,j=0;for(n=44100*n+9,y*=44100,o*=44100,r*=44100,v*=44100,d*=500*z/85766121e6,h*=z/44100,p*=z/44100,u*=44100,m=44100*m|0,a*=.3*e.zzfxV,X=n+y+o+r+v|0;L<X;i[L++]=P*a)++N%(100*x|0)||(P=s?1<s?2<s?3<s?F(I*I):E.max(E.min(E.tan(I),1),-1):1-(2*I/z%2+2)%2:1-4*E.abs(E.round(I/z)-I/z):F(I),P=(m?1-b+b*F(z*L/m):1)*(P<0?-1:1)*E.abs(P)**f*(L<n?L/n:L<n+y?1-(L-n)/y*(1-w):L<n+y+o?w:L<X-v?(X-L-v)/r*w:0),P=v?P/2+(v>L?0:(L<X-v?1:(X-L)/v)*i[L-v|0]/2/a):P,k&&(P=j=V*R+W*(R=G)+V*(G=P)-O*$-H*($=j))),I+=(Y=(l+=c+=d)*E.cos(h*A++))+Y*g*F(L**5),S&&++S>u&&(l+=p,C+=p,S=0),!m||++M%m||(l=C,c=T,S=S||1);(a=t.createBuffer(1,X,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,antialias:!1,canvas:null,global:!0,loop:null,tapEvents:!0,keyboardEvents:!0,animate:!0},t);let c=!1,d=[],p,u=1,m,g=.5,h=1,x,v=1/60,w=0,y,b="sans-serif",k=20,E=Date.now(),z=e,T=[.5,0,1750,,,.3,1,,,,600,.1],C={},I={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?I.clamp(o,i,l):o},norm:(e,t,a)=>I.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(I.rand(e,t+1)),rseed(e){E=~~e},cls(e){null==e?m.clearRect(0,0,m.canvas.width,m.canvas.height):I.rectfill(0,0,m.canvas.width,m.canvas.height,e)},rect(e,t,a,i,l,n){s(m),m[n?"roundRect":"rect"](~~e-g,~~t-g,~~a+2*g,~~i+2*g,n),I.stroke(l)},rectfill(e,t,a,i,l,n){s(m),m[n?"roundRect":"rect"](~~e,~~t,~~a,~~i,n),I.fill(l)},circ(e,t,a,i){s(m),m.arc(~~e,~~t,~~a,0,l),I.stroke(i)},circfill(e,t,a,i){s(m),m.arc(~~e,~~t,~~a,0,l),I.fill(i)},oval(e,t,a,i,n){s(m),m.ellipse(~~e,~~t,~~a,~~i,0,0,l),I.stroke(n)},ovalfill(e,t,a,i,n){s(m),m.ellipse(~~e,~~t,~~a,~~i,0,0,l),I.fill(n)},line(e,t,a,i,l){s(m);let n=.5*(0!==g&&~~e==~~a),o=.5*(0!==g&&~~t==~~i);m.moveTo(~~e+n,~~t+o),m.lineTo(~~a+n,~~i+o),I.stroke(l)},linewidth(e){m.lineWidth=~~e,g=.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&&I.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=I.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<=0)&&(!navigator.userActivation||!!navigator.userActivation.hasBeenActive)&&(e=e||T,(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:()=>p,use(e,t={}){c?N(e,t):d.push([e,t])},listen:(e,t)=>(C[e=e.toLowerCase()]=C[e]||new Set,C[e].add(t),()=>C&&C[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){I[e]=i,t.global&&(a[e]=i)},timescale(e){h=e},framerate(e){v=1/~~e},stat(e){let i={index:e,value:[t,c,v,u,C,z,T,h,a.zzfxV||1,E,k,b][e]};return I.emit("stat",i),i.value},quit(){for(let e of(I.pause(),I.emit("quit"),C={},o))e();if(t.global){for(let e in I)delete a[e];delete a.ENGINE}c=!1},pause(){cancelAnimationFrame(y),y=0},resume(){!y&&c&&(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(","))I[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]&&I.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,t)=>[(e-p.offsetLeft)/u,(t-p.offsetTop)/u],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(p,"mousedown",t=>{if(0===t.button){o(t);let[a,l]=e(t.pageX,t.pageY);I.emit("tap",a,l,0),i(0,a,l),s=!0}}),r(p,"mouseup",a=>{if(0===a.button){o(a);let i=t.get(0),[l,r]=e(a.pageX,a.pageY);n(i)&&I.emit("tapped",i.xi,i.yi,0),I.emit("untap",l,r,0),t.delete(0),s=!1}}),r(p,"mousemove",t=>{o(t);let[a,i]=e(t.pageX,t.pageY);I.def("MX",a),I.def("MY",i),s&&(I.emit("tapping",a,i,0),l(0,a,i))}),r(p,"touchstart",t=>{for(let a of(o(t),t.changedTouches)){let[t,l]=e(a.pageX,a.pageY);I.emit("tap",t,l,a.identifier+1),i(a.identifier+1,t,l)}}),r(p,"touchmove",t=>{for(let a of(o(t),t.changedTouches)){let[t,i]=e(a.pageX,a.pageY);I.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)&&I.emit("tapped",i.xi,i.yi,e),I.emit("untap",i.x,i.y,e),t.delete(e))};r(p,"touchend",f),r(p,"touchcancel",f),r(a,"blur",()=>{for(let[e,a]of(s=!1,t))I.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()),I.listen("after:update",()=>t.clear()),I.def("iskeydown",t=>i(e,t)),I.def("iskeypressed",e=>i(t,e))}c=!0,I.emit("init",I),I.textalign("start","top"),x=performance.now(),I.resume()}function L(e){if(!t.animate)return I.emit("draw");let a=0,i=(e-x)/1e3;if(x=e,i<.1)for(w+=i;w>=v;)a++,I.emit("update",v*h,a),I.def("T",I.T+v*h),w-=v;a&&I.emit("draw"),y&&(y=n(L))}function S(){let e=t.width||a.innerWidth,l=t.height||t.width||a.innerHeight;I.def("W",e),I.def("H",l),p.width=e,p.height=l,t.autoscale&&(p.style.display||(p.style.display="block",p.style.margin="auto"),u=i.min(a.innerWidth/e,a.innerHeight/l),u=(t.pixelart?~~u:u)||1,p.style.width=e*u+"px",p.style.height=l*u+"px"),(!t.antialias||t.pixelart)&&(m.imageSmoothingEnabled=!1,p.style.imageRendering="pixelated"),I.emit("resized",u),I.cls(0),t.animate||n(L)}function M(e,t,a,i,l){if(C[e])for(let n of C[e])n(t,a,i,l)}function N(e,t){let a=e(I,t);for(let e in a)I.def(e,a[e])}if(t.global){if(a.ENGINE)throw Error("only one global litecanvas is allowed");Object.assign(a,I),a.ENGINE=I}return m=(p=(p="string"==typeof t.canvas?document.querySelector(t.canvas):t.canvas)||document.createElement("canvas")).getContext("2d"),r(p,"click",()=>a.focus()),p.style="",S(),p.parentNode||document.body.appendChild(p),p.oncontextmenu=()=>!1,"loading"===document.readyState?r(a,"DOMContentLoaded",()=>n(A)):n(A),I}})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "litecanvas",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.89.0",
|
|
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>",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"gzip-size": "gzip -c dist/dist.min.js | wc -c | xargs printf \" Gzip size: %s bytes\n\"",
|
|
57
57
|
"format": "prettier -w src/* samples/* types/* script/* types/*",
|
|
58
58
|
"check-types": "npx ts types/*",
|
|
59
|
-
"genversion": "genversion --es6 --semi version.js"
|
|
59
|
+
"genversion": "genversion --es6 --semi src/version.js"
|
|
60
60
|
},
|
|
61
61
|
"files": [
|
|
62
62
|
"dist",
|
package/src/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { setupZzFX } from './zzfx.js'
|
|
3
3
|
import { defaultPalette } from './palette.js'
|
|
4
4
|
import { assert } from './dev.js'
|
|
5
|
-
import { version } from '
|
|
5
|
+
import { version } from './version.js'
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* The litecanvas constructor
|
|
@@ -1270,12 +1270,16 @@ export default function litecanvas(settings = {}) {
|
|
|
1270
1270
|
*/
|
|
1271
1271
|
(id, x, y) => {
|
|
1272
1272
|
const tap = {
|
|
1273
|
+
// current x
|
|
1273
1274
|
x,
|
|
1275
|
+
// current y
|
|
1274
1276
|
y,
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
+
// initial x
|
|
1278
|
+
xi: x,
|
|
1279
|
+
// initial y
|
|
1280
|
+
yi: y,
|
|
1277
1281
|
// timestamp
|
|
1278
|
-
|
|
1282
|
+
t: performance.now(),
|
|
1279
1283
|
}
|
|
1280
1284
|
_taps.set(id, tap)
|
|
1281
1285
|
return tap
|
|
@@ -1293,10 +1297,14 @@ export default function litecanvas(settings = {}) {
|
|
|
1293
1297
|
},
|
|
1294
1298
|
_checkTapped =
|
|
1295
1299
|
/**
|
|
1296
|
-
* @param {{
|
|
1300
|
+
* @param {{t: number}} tap
|
|
1297
1301
|
*/
|
|
1298
|
-
(tap) => tap && performance.now() - tap.
|
|
1299
|
-
preventDefault =
|
|
1302
|
+
(tap) => tap && performance.now() - tap.t <= 300,
|
|
1303
|
+
preventDefault =
|
|
1304
|
+
/**
|
|
1305
|
+
* @param {Event} ev
|
|
1306
|
+
*/
|
|
1307
|
+
(ev) => ev.preventDefault()
|
|
1300
1308
|
|
|
1301
1309
|
let _pressingMouse = false
|
|
1302
1310
|
|
|
@@ -1329,7 +1337,7 @@ export default function litecanvas(settings = {}) {
|
|
|
1329
1337
|
const tap = _taps.get(0)
|
|
1330
1338
|
const [x, y] = _getXY(ev.pageX, ev.pageY)
|
|
1331
1339
|
if (_checkTapped(tap)) {
|
|
1332
|
-
instance.emit('tapped', tap.
|
|
1340
|
+
instance.emit('tapped', tap.xi, tap.yi, 0)
|
|
1333
1341
|
}
|
|
1334
1342
|
instance.emit('untap', x, y, 0)
|
|
1335
1343
|
_taps.delete(0)
|
|
@@ -1409,7 +1417,7 @@ export default function litecanvas(settings = {}) {
|
|
|
1409
1417
|
for (const [id, tap] of _taps) {
|
|
1410
1418
|
if (existing.includes(id)) continue
|
|
1411
1419
|
if (_checkTapped(tap)) {
|
|
1412
|
-
instance.emit('tapped', tap.
|
|
1420
|
+
instance.emit('tapped', tap.xi, tap.yi, id)
|
|
1413
1421
|
}
|
|
1414
1422
|
instance.emit('untap', tap.x, tap.y, id)
|
|
1415
1423
|
_taps.delete(id)
|
|
@@ -1572,6 +1580,8 @@ export default function litecanvas(settings = {}) {
|
|
|
1572
1580
|
if (!_canvas.parentNode) {
|
|
1573
1581
|
document.body.appendChild(_canvas)
|
|
1574
1582
|
}
|
|
1583
|
+
|
|
1584
|
+
_canvas.oncontextmenu = () => false
|
|
1575
1585
|
}
|
|
1576
1586
|
|
|
1577
1587
|
function resizeCanvas() {
|
package/src/version.js
ADDED