isolated script scope
This commit is contained in:
parent
76576ef297
commit
bf1bbfd141
554
js/gamepad.js
554
js/gamepad.js
@ -1,302 +1,304 @@
|
|||||||
$.urlParam = function(name) {
|
(function(window, document, undefined) {
|
||||||
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
|
$.urlParam = function(name) {
|
||||||
if (results === null) {
|
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
|
||||||
return null;
|
if (results === null) {
|
||||||
} else {
|
return null;
|
||||||
return decodeURIComponent(results[1]) || 0;
|
} else {
|
||||||
}
|
return decodeURIComponent(results[1]) || 0;
|
||||||
};
|
}
|
||||||
|
};
|
||||||
|
|
||||||
var haveEvents = 'ongamepadconnected' in window;
|
var haveEvents = 'ongamepadconnected' in window;
|
||||||
var gamepads = {};
|
var gamepads = {};
|
||||||
var $gamepad = $('.gamepad');
|
var $gamepad = $('.gamepad');
|
||||||
var $nogamepad = $('.no-gamepad');
|
var $nogamepad = $('.no-gamepad');
|
||||||
var $help = $('.help');
|
var $help = $('.help');
|
||||||
var gamepadIdentifiers = {
|
var gamepadIdentifiers = {
|
||||||
'ds4': {
|
'ds4': {
|
||||||
'id': /054c.*?05c4/,
|
'id': /054c.*?05c4/,
|
||||||
'colors': ['black', 'white', 'red', 'blue']
|
'colors': ['black', 'white', 'red', 'blue']
|
||||||
},
|
},
|
||||||
'xbox-one': {
|
'xbox-one': {
|
||||||
'id': /xinput|XInput/,
|
'id': /xinput|XInput/,
|
||||||
'colors': ['black', 'white']
|
'colors': ['black', 'white']
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var gamepadHelpTimeout = null;
|
var gamepadHelpTimeout = null;
|
||||||
var gamepadHelpDelay = 10000;
|
var gamepadHelpDelay = 10000;
|
||||||
var activeGamepadIndex = null;
|
var activeGamepadIndex = null;
|
||||||
var activeGamepadType = null;
|
var activeGamepadType = null;
|
||||||
var activeGamepadIdentifier = null;
|
var activeGamepadIdentifier = null;
|
||||||
var activeGamepadColorIndex = null;
|
var activeGamepadColorIndex = null;
|
||||||
var activeGamepadColorName = null;
|
var activeGamepadColorName = null;
|
||||||
var activeGamepadZoomLevel = 1;
|
var activeGamepadZoomLevel = 1;
|
||||||
var mapping = {
|
var mapping = {
|
||||||
buttons: [],
|
buttons: [],
|
||||||
axes: []
|
axes: []
|
||||||
};
|
};
|
||||||
|
|
||||||
window.addEventListener("gamepadconnected", onGamepadConnect);
|
window.addEventListener("gamepadconnected", onGamepadConnect);
|
||||||
window.addEventListener("gamepaddisconnected", onGamepadDisconnect);
|
window.addEventListener("gamepaddisconnected", onGamepadDisconnect);
|
||||||
window.addEventListener("keydown", onKeyDown);
|
window.addEventListener("keydown", onKeyDown);
|
||||||
|
|
||||||
displayGamepadHelp();
|
|
||||||
function displayGamepadHelp() {
|
|
||||||
gamepadHelpTimeout = window.setTimeout(function() {
|
|
||||||
$nogamepad.fadeIn();
|
|
||||||
}, gamepadHelpDelay);
|
|
||||||
}
|
|
||||||
function hideGamepadHelp() {
|
|
||||||
window.clearTimeout(gamepadHelpTimeout);
|
|
||||||
$nogamepad.hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
function onGamepadConnect(e) {
|
|
||||||
addGamepad(e.gamepad);
|
|
||||||
}
|
|
||||||
|
|
||||||
function onGamepadDisconnect(e) {
|
|
||||||
removeGamepad(e.gamepad.index);
|
|
||||||
}
|
|
||||||
|
|
||||||
function onKeyDown(e) {
|
|
||||||
switch (e.code) {
|
|
||||||
case "Delete":
|
|
||||||
case "Escape":
|
|
||||||
removeGamepad(activeGamepadIndex);
|
|
||||||
break;
|
|
||||||
case "KeyC":
|
|
||||||
changeGamepadColor();
|
|
||||||
break;
|
|
||||||
case "KeyH":
|
|
||||||
toggleHelp();
|
|
||||||
break;
|
|
||||||
case "NumpadAdd":
|
|
||||||
case "Equal":
|
|
||||||
changeZoom("+");
|
|
||||||
break;
|
|
||||||
case "NumpadSubtract":
|
|
||||||
case "Minus":
|
|
||||||
changeZoom("-");
|
|
||||||
break;
|
|
||||||
case "Numpad0":
|
|
||||||
case "Digit0":
|
|
||||||
changeZoom("0");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function getGamepads() {
|
|
||||||
return navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);
|
|
||||||
}
|
|
||||||
|
|
||||||
function addGamepad(gamepad) {
|
|
||||||
gamepads[gamepad.index] = gamepad;
|
|
||||||
}
|
|
||||||
|
|
||||||
function removeGamepad(gamepadIndex) {
|
|
||||||
if (gamepadIndex === activeGamepadIndex) {
|
|
||||||
activeGamepadIndex = null;
|
|
||||||
$gamepad.empty();
|
|
||||||
}
|
|
||||||
delete gamepads[gamepadIndex];
|
|
||||||
|
|
||||||
displayGamepadHelp();
|
displayGamepadHelp();
|
||||||
}
|
function displayGamepadHelp() {
|
||||||
|
gamepadHelpTimeout = window.setTimeout(function() {
|
||||||
setInterval(scanGamepads, 500);
|
$nogamepad.fadeIn();
|
||||||
function scanGamepads() {
|
}, gamepadHelpDelay);
|
||||||
if (null !== activeGamepadIndex) {
|
}
|
||||||
return;
|
function hideGamepadHelp() {
|
||||||
|
window.clearTimeout(gamepadHelpTimeout);
|
||||||
|
$nogamepad.hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
gamepads = getGamepads();
|
function onGamepadConnect(e) {
|
||||||
for (var gamepadIndex = 0; gamepadIndex < gamepads.length; gamepadIndex++) {
|
addGamepad(e.gamepad);
|
||||||
var gamepad = gamepads[gamepadIndex];
|
}
|
||||||
if (gamepad) {
|
|
||||||
if (gamepad.index in gamepads) {
|
function onGamepadDisconnect(e) {
|
||||||
gamepads[gamepad.index] = gamepad;
|
removeGamepad(e.gamepad.index);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onKeyDown(e) {
|
||||||
|
switch (e.code) {
|
||||||
|
case "Delete":
|
||||||
|
case "Escape":
|
||||||
|
removeGamepad(activeGamepadIndex);
|
||||||
|
break;
|
||||||
|
case "KeyC":
|
||||||
|
changeGamepadColor();
|
||||||
|
break;
|
||||||
|
case "KeyH":
|
||||||
|
toggleHelp();
|
||||||
|
break;
|
||||||
|
case "NumpadAdd":
|
||||||
|
case "Equal":
|
||||||
|
changeZoom("+");
|
||||||
|
break;
|
||||||
|
case "NumpadSubtract":
|
||||||
|
case "Minus":
|
||||||
|
changeZoom("-");
|
||||||
|
break;
|
||||||
|
case "Numpad0":
|
||||||
|
case "Digit0":
|
||||||
|
changeZoom("0");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getGamepads() {
|
||||||
|
return navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads() : []);
|
||||||
|
}
|
||||||
|
|
||||||
|
function addGamepad(gamepad) {
|
||||||
|
gamepads[gamepad.index] = gamepad;
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeGamepad(gamepadIndex) {
|
||||||
|
if (gamepadIndex === activeGamepadIndex) {
|
||||||
|
activeGamepadIndex = null;
|
||||||
|
$gamepad.empty();
|
||||||
|
}
|
||||||
|
delete gamepads[gamepadIndex];
|
||||||
|
|
||||||
|
displayGamepadHelp();
|
||||||
|
}
|
||||||
|
|
||||||
|
setInterval(scanGamepads, 500);
|
||||||
|
function scanGamepads() {
|
||||||
|
if (null !== activeGamepadIndex) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
gamepads = getGamepads();
|
||||||
|
for (var gamepadIndex = 0; gamepadIndex < gamepads.length; gamepadIndex++) {
|
||||||
|
var gamepad = gamepads[gamepadIndex];
|
||||||
|
if (gamepad) {
|
||||||
|
if (gamepad.index in gamepads) {
|
||||||
|
gamepads[gamepad.index] = gamepad;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var buttonIndex = 0; buttonIndex < gamepad.buttons.length; buttonIndex++) {
|
||||||
|
button = gamepad.buttons[buttonIndex];
|
||||||
|
if (null === activeGamepadIndex && button.pressed) {
|
||||||
|
mapGamepad(gamepad);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function mapGamepad(gamepad) {
|
||||||
|
var button;
|
||||||
|
var axis;
|
||||||
|
|
||||||
|
activeGamepadIndex = gamepad.index;
|
||||||
|
|
||||||
|
hideGamepadHelp();
|
||||||
|
|
||||||
|
for (var gamepadType in gamepadIdentifiers) {
|
||||||
|
if (gamepadIdentifiers[gamepadType].id.test(gamepad.id)) {
|
||||||
|
activeGamepadType = gamepadType;
|
||||||
|
activeGamepadIdentifier = gamepadIdentifiers[gamepadType];
|
||||||
|
activeGamepadColorIndex = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$.ajax(
|
||||||
|
'templates/' + activeGamepadType + '/template.html', {
|
||||||
|
async: true
|
||||||
|
}
|
||||||
|
).done(function(template) {
|
||||||
|
$gamepad.html(template);
|
||||||
|
|
||||||
|
if ($.urlParam('color')) {
|
||||||
|
changeGamepadColor($.urlParam('color'));
|
||||||
|
}
|
||||||
|
if ($.urlParam('c')) {
|
||||||
|
changeGamepadColor($.urlParam('c'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($.urlParam('zoom')) {
|
||||||
|
changeZoom($.urlParam('zoom'));
|
||||||
|
}
|
||||||
|
if ($.urlParam('z')) {
|
||||||
|
changeZoom($.urlParam('z'));
|
||||||
|
}
|
||||||
|
|
||||||
|
mapping.buttons = [];
|
||||||
for (var buttonIndex = 0; buttonIndex < gamepad.buttons.length; buttonIndex++) {
|
for (var buttonIndex = 0; buttonIndex < gamepad.buttons.length; buttonIndex++) {
|
||||||
button = gamepad.buttons[buttonIndex];
|
button = gamepad.buttons[buttonIndex];
|
||||||
if (null === activeGamepadIndex && button.pressed) {
|
mapping.buttons[buttonIndex] = $('[data-button=' + buttonIndex + ']');
|
||||||
mapGamepad(gamepad);
|
}
|
||||||
}
|
|
||||||
|
mapping.axes = [];
|
||||||
|
for (var axisIndex = 0; axisIndex < gamepad.axes.length; axisIndex++) {
|
||||||
|
axis = gamepad.axes[axisIndex];
|
||||||
|
mapping.axes[axisIndex] = $('[data-axis-x=' + axisIndex + '], [data-axis-y=' + axisIndex + '], [data-axis-z=' + axisIndex + ']');
|
||||||
|
}
|
||||||
|
|
||||||
|
updateVisualStatus();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateVisualStatus() {
|
||||||
|
if (null === activeGamepadIndex) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
gamepads = getGamepads();
|
||||||
|
var activeGamepad = gamepads[activeGamepadIndex];
|
||||||
|
|
||||||
|
if (!activeGamepad) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
requestAnimationFrame(updateVisualStatus);
|
||||||
|
|
||||||
|
var button;
|
||||||
|
var $button;
|
||||||
|
for (var buttonIndex = 0; buttonIndex < activeGamepad.buttons.length; buttonIndex++) {
|
||||||
|
$button = mapping.buttons[buttonIndex];
|
||||||
|
if (!$button) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
button = activeGamepad.buttons[buttonIndex];
|
||||||
|
|
||||||
|
$button.attr('data-pressed', button.pressed);
|
||||||
|
$button.attr('data-value', button.value);
|
||||||
|
|
||||||
|
if ("function" === typeof updateButton) {
|
||||||
|
updateButton($button);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var axis;
|
||||||
|
var $axis;
|
||||||
|
for (var axisIndex = 0; axisIndex < activeGamepad.axes.length; axisIndex++) {
|
||||||
|
$axis = mapping.axes[axisIndex];
|
||||||
|
if (!$axis) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
axis = activeGamepad.axes[axisIndex];
|
||||||
|
|
||||||
|
if ($axis.is('[data-axis-x=' + axisIndex + ']')) {
|
||||||
|
$axis.attr('data-value-x', axis);
|
||||||
|
}
|
||||||
|
if ($axis.is('[data-axis-y=' + axisIndex + ']')) {
|
||||||
|
$axis.attr('data-value-y', axis);
|
||||||
|
}
|
||||||
|
if ($axis.is('[data-axis-z=' + axisIndex + ']')) {
|
||||||
|
$axis.attr('data-value-z', axis);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("function" === typeof updateAxis) {
|
||||||
|
updateAxis($axis);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
function mapGamepad(gamepad) {
|
function changeGamepadColor(gamepadColor) {
|
||||||
var button;
|
if (! activeGamepadIdentifier) {
|
||||||
var axis;
|
return;
|
||||||
|
|
||||||
activeGamepadIndex = gamepad.index;
|
|
||||||
|
|
||||||
hideGamepadHelp();
|
|
||||||
|
|
||||||
for (var gamepadType in gamepadIdentifiers) {
|
|
||||||
if (gamepadIdentifiers[gamepadType].id.test(gamepad.id)) {
|
|
||||||
activeGamepadType = gamepadType;
|
|
||||||
activeGamepadIdentifier = gamepadIdentifiers[gamepadType];
|
|
||||||
activeGamepadColorIndex = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$.ajax(
|
|
||||||
'templates/' + activeGamepadType + '/template.html', {
|
|
||||||
async: true
|
|
||||||
}
|
|
||||||
).done(function(template) {
|
|
||||||
$gamepad.html(template);
|
|
||||||
|
|
||||||
if ($.urlParam('color')) {
|
|
||||||
changeGamepadColor($.urlParam('color'));
|
|
||||||
}
|
|
||||||
if ($.urlParam('c')) {
|
|
||||||
changeGamepadColor($.urlParam('c'));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($.urlParam('zoom')) {
|
if (!! gamepadColor) {
|
||||||
changeZoom($.urlParam('zoom'));
|
if (! isNaN(parseInt(gamepadColor))) {
|
||||||
}
|
activeGamepadColorIndex = gamepadColor;
|
||||||
if ($.urlParam('z')) {
|
activeGamepadColorName = activeGamepadIdentifier.colors[activeGamepadColorIndex];
|
||||||
changeZoom($.urlParam('z'));
|
} else {
|
||||||
}
|
activeGamepadColorName = gamepadColor;
|
||||||
|
activeGamepadColorIndex = 0;
|
||||||
mapping.buttons = [];
|
for (var gamepadColorName in activeGamepadIdentifier.colors) {
|
||||||
for (var buttonIndex = 0; buttonIndex < gamepad.buttons.length; buttonIndex++) {
|
if (activeGamepadColorName === gamepadColorName) {
|
||||||
button = gamepad.buttons[buttonIndex];
|
break;
|
||||||
mapping.buttons[buttonIndex] = $('[data-button=' + buttonIndex + ']');
|
}
|
||||||
}
|
activeGamepadColorIndex++;
|
||||||
|
}
|
||||||
mapping.axes = [];
|
}
|
||||||
for (var axisIndex = 0; axisIndex < gamepad.axes.length; axisIndex++) {
|
|
||||||
axis = gamepad.axes[axisIndex];
|
|
||||||
mapping.axes[axisIndex] = $('[data-axis-x=' + axisIndex + '], [data-axis-y=' + axisIndex + '], [data-axis-z=' + axisIndex + ']');
|
|
||||||
}
|
|
||||||
|
|
||||||
updateVisualStatus();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateVisualStatus() {
|
|
||||||
if (null === activeGamepadIndex) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
gamepads = getGamepads();
|
|
||||||
var activeGamepad = gamepads[activeGamepadIndex];
|
|
||||||
|
|
||||||
if (!activeGamepad) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
requestAnimationFrame(updateVisualStatus);
|
|
||||||
|
|
||||||
var button;
|
|
||||||
var $button;
|
|
||||||
for (var buttonIndex = 0; buttonIndex < activeGamepad.buttons.length; buttonIndex++) {
|
|
||||||
$button = mapping.buttons[buttonIndex];
|
|
||||||
if (!$button) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
button = activeGamepad.buttons[buttonIndex];
|
|
||||||
|
|
||||||
$button.attr('data-pressed', button.pressed);
|
|
||||||
$button.attr('data-value', button.value);
|
|
||||||
|
|
||||||
if ("function" === typeof updateButton) {
|
|
||||||
updateButton($button);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var axis;
|
|
||||||
var $axis;
|
|
||||||
for (var axisIndex = 0; axisIndex < activeGamepad.axes.length; axisIndex++) {
|
|
||||||
$axis = mapping.axes[axisIndex];
|
|
||||||
if (!$axis) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
axis = activeGamepad.axes[axisIndex];
|
|
||||||
|
|
||||||
if ($axis.is('[data-axis-x=' + axisIndex + ']')) {
|
|
||||||
$axis.attr('data-value-x', axis);
|
|
||||||
}
|
|
||||||
if ($axis.is('[data-axis-y=' + axisIndex + ']')) {
|
|
||||||
$axis.attr('data-value-y', axis);
|
|
||||||
}
|
|
||||||
if ($axis.is('[data-axis-z=' + axisIndex + ']')) {
|
|
||||||
$axis.attr('data-value-z', axis);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ("function" === typeof updateAxis) {
|
|
||||||
updateAxis($axis);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function changeGamepadColor(gamepadColor) {
|
|
||||||
if (! activeGamepadIdentifier) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!! gamepadColor) {
|
|
||||||
if (! isNaN(parseInt(gamepadColor))) {
|
|
||||||
activeGamepadColorIndex = gamepadColor;
|
|
||||||
activeGamepadColorName = activeGamepadIdentifier.colors[activeGamepadColorIndex];
|
|
||||||
} else {
|
} else {
|
||||||
activeGamepadColorName = gamepadColor;
|
activeGamepadColorIndex++;
|
||||||
activeGamepadColorIndex = 0;
|
if (activeGamepadColorIndex > activeGamepadIdentifier.colors.length - 1) {
|
||||||
for (var gamepadColorName in activeGamepadIdentifier.colors) {
|
activeGamepadColorIndex = 0;
|
||||||
if (activeGamepadColorName === gamepadColorName) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
activeGamepadColorIndex++;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
} else {
|
activeGamepadColorName = activeGamepadIdentifier.colors[activeGamepadColorIndex];
|
||||||
activeGamepadColorIndex++;
|
|
||||||
if (activeGamepadColorIndex > activeGamepadIdentifier.colors.length - 1) {
|
|
||||||
activeGamepadColorIndex = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
activeGamepadColorName = activeGamepadIdentifier.colors[activeGamepadColorIndex];
|
$gamepad.attr('data-color', activeGamepadColorName);
|
||||||
}
|
}
|
||||||
|
|
||||||
$gamepad.attr('data-color', activeGamepadColorName);
|
function changeZoom(zoomLevel) {
|
||||||
}
|
if (! activeGamepadIdentifier) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
function changeZoom(zoomLevel) {
|
if (! zoomLevel) {
|
||||||
if (! activeGamepadIdentifier) {
|
return;
|
||||||
return;
|
}
|
||||||
|
|
||||||
|
if ('0' === zoomLevel) {
|
||||||
|
activeGamepadZoomLevel = 1;
|
||||||
|
}
|
||||||
|
else if ('+' === zoomLevel && activeGamepadZoomLevel < 2) {
|
||||||
|
activeGamepadZoomLevel += 0.1;
|
||||||
|
}
|
||||||
|
else if ('-' === zoomLevel && activeGamepadZoomLevel > 0.2) {
|
||||||
|
activeGamepadZoomLevel -= 0.1;
|
||||||
|
}
|
||||||
|
else if (! isNaN(zoomLevel = parseFloat(zoomLevel))) {
|
||||||
|
activeGamepadZoomLevel = zoomLevel;
|
||||||
|
}
|
||||||
|
|
||||||
|
// hack: fix js float issues
|
||||||
|
activeGamepadZoomLevel = +activeGamepadZoomLevel.toFixed(1);
|
||||||
|
|
||||||
|
$gamepad.css('transform', 'translate(-50%, -50%) scale(' + activeGamepadZoomLevel + ', ' + activeGamepadZoomLevel + ')');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! zoomLevel) {
|
function toggleHelp(zoomLevel) {
|
||||||
return;
|
$help.toggleClass('active');
|
||||||
}
|
}
|
||||||
|
})(window, document);
|
||||||
if ('0' === zoomLevel) {
|
|
||||||
activeGamepadZoomLevel = 1;
|
|
||||||
}
|
|
||||||
else if ('+' === zoomLevel && activeGamepadZoomLevel < 2) {
|
|
||||||
activeGamepadZoomLevel += 0.1;
|
|
||||||
}
|
|
||||||
else if ('-' === zoomLevel && activeGamepadZoomLevel > 0.2) {
|
|
||||||
activeGamepadZoomLevel -= 0.1;
|
|
||||||
}
|
|
||||||
else if (! isNaN(zoomLevel = parseFloat(zoomLevel))) {
|
|
||||||
activeGamepadZoomLevel = zoomLevel;
|
|
||||||
}
|
|
||||||
|
|
||||||
// hack: fix js float issues
|
|
||||||
activeGamepadZoomLevel = +activeGamepadZoomLevel.toFixed(1);
|
|
||||||
|
|
||||||
$gamepad.css('transform', 'translate(-50%, -50%) scale(' + activeGamepadZoomLevel + ', ' + activeGamepadZoomLevel + ')');
|
|
||||||
}
|
|
||||||
|
|
||||||
function toggleHelp(zoomLevel) {
|
|
||||||
$help.toggleClass('active');
|
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user