Je veux utiliser mon joystick pour controller une caméra IP.
J'ai utiliser le module gamepad.
Voilà comment j'ai fais:
1)Démarrage
var gamepad = require("gamepad"); //Plugin for gamepad
var chalk = require("chalk"); //Plugin for colors
gamepad.init()
// List the state of all currently attached devices
for (var i = 0, l = gamepad.numDevices(); i < l; i++) {
console.log(i, gamepad.deviceAtIndex());
}
// Create a game loop and poll for events
setInterval(gamepad.processEvents, 16);
// Scan for new gamepads as a slower rate
setInterval(gamepad.detectDevices, 500);
2)Gestions des events
Pour cela il faut jouer avec sa manette en utilisant ces fonctions:
// Listen for move events on all gamepads
gamepad.on("move", function (id, axis, value) {
console.log("move", {
id: id,
axis: axis,
value: value,
});
});
// Listen for button up events on all gamepads
gamepad.on("up", function (id, num) {
console.log("up", {
id: id,
num: num,
});
});
// Listen for button down events on all gamepads
gamepad.on("down", function (id, num) {
console.log("down", {
id: id,
num: num,
});
});
id = la manette
axis= l'axe
value= la valeur
num= le button appuyé
Puis remplacer le code au fur à mesure:
// Listen for move events on all gamepads
gamepad.on("move", function (id, axis, value) {
if(axis == 5 && value == 0){
console.log(chalk.yellow('Gauche') + ' du petit controller');
return;
}
if(axis == 5 && value == 1){
console.log(chalk.yellow('Droite') + ' du petit controller');
return;
}
if(axis == 6 && value == 0){
console.log(chalk.yellow('Haut') + ' du petit controller');
return;
}
if(axis == 6 && value == 1){
console.log(chalk.yellow('Bas') + ' du petit controller');
return;
}
if(axis == 3 && value < 0 && value >= -1){
if(value == -1){
console.log(chalk.yellow('Haut stict') + ' du grand controller');
return;
}
console.log(chalk.yellow('Haut') + ' du grand controller');
return;
}
if(axis == 3 && value > 0 && value <= 1){
if(value == 1){
console.log(chalk.yellow('Bas stict') + ' du grand controller');
return;
}
console.log(chalk.yellow('Bas') + ' du grand controller');
return;
}
if(axis == 4 && value < 0 && value >= -1){
if(value == -1){
console.log(chalk.yellow('Gauche stict') + ' du grand controller');
return;
}
console.log(chalk.yellow('Gauche') + ' du grand controller');
return;
}
if(axis == 4 && value > 0 && value <= 1){
if(value == 1){
console.log(chalk.yellow('Droite stict') + ' du grand controller');
return;
}
console.log(chalk.yellow('Droite') + ' du grand controller');
return;
}
});
gamepad.on("up", function (id, num) {
num++;
console.log('Numéro '+ chalk.yellow(num) + ' relaché');
});
gamepad.on("down", function (id, num) {
num++;
console.log('Numéro '+ chalk.yellow(num) + ' appuyé');
});
Je voudrai savoir si d'autre on utiliser un module ou une méthode plus simple. Merci de vos réponses.