Gamepad API works in Chrome
This commit is contained in:
parent
5336f0d4bf
commit
11c6cc9cb8
@ -191,6 +191,7 @@ var leftPaddleUpCondition = function (paddle, delta) {
|
||||
|
||||
if (!axisMoved) {
|
||||
if (paddle._game.inputs.keyboard.isPressed(KeyConsts.CHAR_Q)) {
|
||||
this.top -= 0.5 * delta;
|
||||
}
|
||||
|
||||
}
|
||||
@ -218,6 +219,7 @@ var leftPaddleDownCondition = function (paddle, delta) {
|
||||
|
||||
if (!axisMoved) {
|
||||
if (paddle._game.inputs.keyboard.isPressed(KeyConsts.CHAR_A)) {
|
||||
this.top += 0.5 * delta;
|
||||
}
|
||||
|
||||
}
|
||||
@ -229,7 +231,7 @@ var rightPaddleUpCondition = function (paddle, delta) {
|
||||
|
||||
let gamepadInput = paddle._game.inputs.gamepad;
|
||||
|
||||
let gamepadConnected = (gamepadInput.numGamepads >= 1),
|
||||
let gamepadConnected = (gamepadInput.numGamepads >= 1 && gamepadInput.getGamepadById(0).numAxis >= 6),
|
||||
axisMoved = false;
|
||||
|
||||
if (gamepadConnected) {
|
||||
@ -245,6 +247,7 @@ var rightPaddleUpCondition = function (paddle, delta) {
|
||||
|
||||
if (!axisMoved) {
|
||||
if (paddle._game.inputs.keyboard.isPressed(KeyConsts.CHAR_O)) {
|
||||
this.top -= 0.5 * delta;
|
||||
}
|
||||
|
||||
}
|
||||
@ -272,6 +275,7 @@ var rightPaddleDownCondition = function (paddle, delta) {
|
||||
|
||||
if (!axisMoved) {
|
||||
if (paddle._game.inputs.keyboard.isPressed(KeyConsts.CHAR_L)) {
|
||||
this.top += 0.5 * delta;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -160,7 +160,6 @@ class Game extends Entity {
|
||||
window.webkitRequestAnimationFrame ||
|
||||
window.mozRequestAnimationFrame ||
|
||||
function (callback) {
|
||||
console.log("THIS");
|
||||
window.setTimeout(callback, 1000 / self.desiredFps);
|
||||
});
|
||||
|
||||
|
@ -48,19 +48,49 @@ class GamepadInput {
|
||||
self._gamepadState = {};
|
||||
self.gamepadIds = [];
|
||||
|
||||
window.addEventListener("gamepadconnected", (event) => {
|
||||
self._gamepadState[event.gamepad.index] = new Gamepad(event.gamepad);
|
||||
self.gamepadIds.push(event.gamepad.index);
|
||||
console.log("Connected");
|
||||
console.log(event.gamepad);
|
||||
console.log(event.gamepad.buttons[0]);
|
||||
});
|
||||
if (!('ongamepadconnected' in window)) {
|
||||
|
||||
window.addEventListener("gamepaddisconnected", (event) => {
|
||||
delete self._gamepadState[event.gamepad.index];
|
||||
self.gamepadIds.splice(self.gamepadIds.indexOf(event.gamepad.index));
|
||||
console.log("Disconnected");
|
||||
});
|
||||
let pollGamepads = function () {
|
||||
|
||||
let gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads : []);
|
||||
|
||||
for (var i = 0; i < gamepads.length; i++) {
|
||||
|
||||
let gamepad = gamepads[i];
|
||||
|
||||
if (gamepad) {
|
||||
|
||||
if (self.gamepadIds.indexOf(gamepad.index) < 0) {
|
||||
self._gamepadState[gamepad.index] = new Gamepad(gamepad);
|
||||
self.gamepadIds.push(gamepad.index);
|
||||
|
||||
console.log(`Gamepad ${gamepad.index} connected`);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
let interval = setInterval(pollGamepads, 5);
|
||||
|
||||
} else {
|
||||
|
||||
window.addEventListener("gamepadconnected", (event) => {
|
||||
self._gamepadState[event.gamepad.index] = new Gamepad(event.gamepad);
|
||||
self.gamepadIds.push(event.gamepad.index);
|
||||
console.log(`Gamepad ${event.gamepad.index} connected`);
|
||||
});
|
||||
|
||||
window.addEventListener("gamepaddisconnected", (event) => {
|
||||
delete self._gamepadState[event.gamepad.index];
|
||||
self.gamepadIds.splice(self.gamepadIds.indexOf(event.gamepad.index));
|
||||
console.log(`Gamepad ${event.gamepad.index} connected`);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user