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 (!axisMoved) {
|
||||||
if (paddle._game.inputs.keyboard.isPressed(KeyConsts.CHAR_Q)) {
|
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 (!axisMoved) {
|
||||||
if (paddle._game.inputs.keyboard.isPressed(KeyConsts.CHAR_A)) {
|
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 gamepadInput = paddle._game.inputs.gamepad;
|
||||||
|
|
||||||
let gamepadConnected = (gamepadInput.numGamepads >= 1),
|
let gamepadConnected = (gamepadInput.numGamepads >= 1 && gamepadInput.getGamepadById(0).numAxis >= 6),
|
||||||
axisMoved = false;
|
axisMoved = false;
|
||||||
|
|
||||||
if (gamepadConnected) {
|
if (gamepadConnected) {
|
||||||
@ -245,6 +247,7 @@ var rightPaddleUpCondition = function (paddle, delta) {
|
|||||||
|
|
||||||
if (!axisMoved) {
|
if (!axisMoved) {
|
||||||
if (paddle._game.inputs.keyboard.isPressed(KeyConsts.CHAR_O)) {
|
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 (!axisMoved) {
|
||||||
if (paddle._game.inputs.keyboard.isPressed(KeyConsts.CHAR_L)) {
|
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.webkitRequestAnimationFrame ||
|
||||||
window.mozRequestAnimationFrame ||
|
window.mozRequestAnimationFrame ||
|
||||||
function (callback) {
|
function (callback) {
|
||||||
console.log("THIS");
|
|
||||||
window.setTimeout(callback, 1000 / self.desiredFps);
|
window.setTimeout(callback, 1000 / self.desiredFps);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -48,19 +48,49 @@ class GamepadInput {
|
|||||||
self._gamepadState = {};
|
self._gamepadState = {};
|
||||||
self.gamepadIds = [];
|
self.gamepadIds = [];
|
||||||
|
|
||||||
window.addEventListener("gamepadconnected", (event) => {
|
if (!('ongamepadconnected' in window)) {
|
||||||
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]);
|
|
||||||
});
|
|
||||||
|
|
||||||
window.addEventListener("gamepaddisconnected", (event) => {
|
let pollGamepads = function () {
|
||||||
delete self._gamepadState[event.gamepad.index];
|
|
||||||
self.gamepadIds.splice(self.gamepadIds.indexOf(event.gamepad.index));
|
let gamepads = navigator.getGamepads ? navigator.getGamepads() : (navigator.webkitGetGamepads ? navigator.webkitGetGamepads : []);
|
||||||
console.log("Disconnected");
|
|
||||||
});
|
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