38 lines
1.4 KiB
JavaScript
38 lines
1.4 KiB
JavaScript
function XboxOneTemplate(gamepad) {
|
|
return {
|
|
init: function () {
|
|
gamepad.updateButton = function ($button) {
|
|
const value = parseFloat($button.attr('data-value'), 10);
|
|
if ($button.is('.trigger')) {
|
|
$button.css(
|
|
gamepad.triggersMeter
|
|
? {
|
|
opacity: 1,
|
|
'clip-path': `inset(${(1 - value) * 100}% 0px 0px 0pc)`,
|
|
}
|
|
: {
|
|
opacity: `${value * 100}%`,
|
|
'clip-path': 'none',
|
|
}
|
|
);
|
|
}
|
|
};
|
|
gamepad.updateAxis = function ($axis) {
|
|
const axisX = $axis.attr('data-value-x');
|
|
const axisY = $axis.attr('data-value-y');
|
|
if ($axis.is('.stick')) {
|
|
$axis.css({
|
|
'margin-top': axisY * 25,
|
|
'margin-left': axisX * 25,
|
|
transform: `rotateX(${-parseFloat(
|
|
axisY * 30,
|
|
8
|
|
)}deg) rotateY(${parseFloat(axisX * 30, 8)}deg)`,
|
|
});
|
|
}
|
|
};
|
|
},
|
|
}.init();
|
|
};
|
|
new XboxOneTemplate(window.gamepad);
|