Compare commits

...

2 commits

Author SHA1 Message Date
fe22b85387 added meta config 2020-04-05 00:35:56 +02:00
41cb894ef9 added swipe mode 2020-04-05 00:35:40 +02:00
3 changed files with 48 additions and 1 deletions

View file

@ -1,6 +1,6 @@
{ {
"touchscreen": { "touchscreen": {
"mode": "joystick", "mode": "swipe",
"deadzone": 10, "deadzone": 10,
"buffer": false "buffer": false
}, },

19
assets/metaConfig.json Normal file
View file

@ -0,0 +1,19 @@
{
"touchscreen": {
"mode": [
"crosspad",
"joystick",
"swipe"
],
"deadzone": {
"min": 1,
"max": 100
}
},
"gamepad": {
"deadzone": {
"min": 0,
"max": 1
}
}
}

View file

@ -177,4 +177,32 @@
}); });
} }
if(config.touchscreen.mode=='swipe') {
let center={x: 0, y: 0};
window.center=center;
window.addEventListener('touchstart', e => {
center.x=e.touches[0].clientX;
center.y=e.touches[0].clientY;
});
window.addEventListener('touchmove', e => {
let x=e.touches[0].clientX-center.x;
let y=e.touches[0].clientY-center.y;
const angle=((Math.atan2(x, y)+2*Math.PI)%(2*Math.PI))/Math.PI;
const magnitude=Math.hypot(x, y);
let inputs=currentInputs;
if(magnitude>config.touchscreen.deadzone) {
if(angle>.25 && angle <.75) inputs.right=true;
else if(angle>.75 && angle<1.25) inputs.up=true;
else if(angle>1.25 && angle<1.75) inputs.left=true;
else inputs.down=true;
center.x=e.touches[0].clientX;
center.y=e.touches[0].clientY;
}
if(!config.touchscreen.buffer) inputs.clearBuffer=true;
});
}
})(); })();