improved the no gamepad message
This commit is contained in:
parent
ebb442c218
commit
0ebb16f1ea
@ -3,11 +3,12 @@ body {
|
||||
overflow: hidden;
|
||||
}
|
||||
.no-gamepad {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
display: none;
|
||||
width: 100vw;
|
||||
line-height: 100vh;
|
||||
line-height: 2em;
|
||||
text-align: center;
|
||||
text-transform: uppercase;
|
||||
font-weight: 700;
|
||||
}
|
||||
.gamepad {
|
||||
position: absolute;
|
||||
|
@ -11,7 +11,7 @@
|
||||
<link rel="stylesheet" href="css/main.css?8a342d6">
|
||||
</head>
|
||||
<body>
|
||||
<div class="no-gamepad">No gamepad detected</div>
|
||||
<div class="no-gamepad">No active gamepad. Press <kbd>H</kbd> to see how it works.</div>
|
||||
<div class="gamepad"></div>
|
||||
<div class="help">
|
||||
<h2>Help</h2>
|
||||
|
@ -10,6 +10,7 @@ $.urlParam = function(name) {
|
||||
var haveEvents = 'ongamepadconnected' in window;
|
||||
var gamepads = {};
|
||||
var $gamepad = $('.gamepad');
|
||||
var $nogamepad = $('.no-gamepad');
|
||||
var $help = $('.help');
|
||||
var gamepadIdentifiers = {
|
||||
'ds4': {
|
||||
@ -21,6 +22,8 @@ var gamepadIdentifiers = {
|
||||
'colors': ['black', 'white']
|
||||
}
|
||||
};
|
||||
var gamepadHelpTimeout = null;
|
||||
var gamepadHelpDelay = 10000;
|
||||
var activeGamepadIndex = null;
|
||||
var activeGamepadType = null;
|
||||
var activeGamepadIdentifier = null;
|
||||
@ -36,6 +39,17 @@ window.addEventListener("gamepadconnected", onGamepadConnect);
|
||||
window.addEventListener("gamepaddisconnected", onGamepadDisconnect);
|
||||
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);
|
||||
}
|
||||
@ -85,6 +99,8 @@ function removeGamepad(gamepadIndex) {
|
||||
$gamepad.empty();
|
||||
}
|
||||
delete gamepads[gamepadIndex];
|
||||
|
||||
displayGamepadHelp();
|
||||
}
|
||||
|
||||
setInterval(scanGamepads, 500);
|
||||
@ -117,6 +133,8 @@ function mapGamepad(gamepad) {
|
||||
|
||||
activeGamepadIndex = gamepad.index;
|
||||
|
||||
hideGamepadHelp();
|
||||
|
||||
for (var gamepadType in gamepadIdentifiers) {
|
||||
if (gamepadIdentifiers[gamepadType].id.test(gamepad.id)) {
|
||||
activeGamepadType = gamepadType;
|
||||
@ -167,7 +185,7 @@ function updateVisualStatus() {
|
||||
return;
|
||||
}
|
||||
|
||||
var gamepads = getGamepads();
|
||||
gamepads = getGamepads();
|
||||
var activeGamepad = gamepads[activeGamepadIndex];
|
||||
|
||||
if (!activeGamepad) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user