Pour le clavier, c'est à peu près ce que j'ai constaté lors de mes essais dans Linux. Si une touche ne répond pas, on peut toujours cliquer avec la souris sur l'image du clavier. De même, si une touche reste bloquée en position basse (l'évènement keyup n'a pas été détecté), on peut débloquer en relâchant le bouton de la souris sur l'image de la touche.
J'ai passé plus de deux heures à établir la table de Windows, je n'ai pas trop de courage pour recommencer avec les autres systèmes, d'autant plus que chaque navigateur a des particularités. Le plus simple est que chaque utilisateur construise sa propre table.
Voici la table Windows :
Code:
var mo5key = /* attention a la touche + : 6b dans Firefox et bb dans Chrome */
[0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x34,0xff,0xff,
0x38,0x35,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x20,0xff,0xff,0x33,0x11,0x29,0x31,0x19,0x21,0xff,0xff,0xff,0xff,0x09,0x01,0xff,
0x1e,0x2f,0x27,0x1f,0x17,0x0f,0x07,0x06,0x0e,0x16,0xff,0x36,0xff,0xff,0xff,0xff,
0xff,0x2d,0x22,0x32,0x1b,0x1d,0x13,0x0b,0x03,0x0c,0x02,0x0a,0x12,0x1a,0x00,0x14,
0x1c,0x2b,0x15,0x23,0x0d,0x04,0x2a,0x30,0x28,0x05,0x25,0xff,0xff,0x39,0xff,0xff,
0x3b,0xff,0x3c,0xff,0x3d,0xff,0x3e,0xff,0x3f,0xff,0xff,0x2e,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x2e,0x08,0xff,0x10,0x24,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x26,0x2c,0xff,0x37,0x18,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff];
Il faut établir la même pour chaque configuration clavier/système/navigateur, et remplacer celle du fichier basic.js (après optimisation du code, le nom de variable mo5key[] est remplacé par g[]. L'indice est la valeur du code PC, chaque élément de table est le scancode MO5 ou 0xff si la touche n'est pas affectée.
Pour les tests il suffit de télécharger les fichiers prehisto.html, basic.js et style.css , puis modifier basic.js et lancer prehisto.html en local.
Même procédé pour les jeux. Les fichiers se nomment :
- miner.html et miner.js
- glouton.html et glouton.js
- blitz.html et blitz.js