|
|
@ -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; |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
})(); |
|
|
|
})(); |
|
|
|