ゲームパッドをブラウザで使える GamePad API の実装が始まりましたね
Firefox Nightly と Chrome Dev に GamePad API が実装されているようです。
API: http://dvcs.w3.org/hg/webevents/raw-file/default/gamepad.html
DEMO: http://rawkes.com/blog/2011/12/14/gamepad-api-demo-in-firefox-and-chrome
if (navigator.gamepads) { window.addEventListener("gamepadconnected", connected, false); window.addEventListener("gamepaddisconnected", disconnected, false); // 仕様と実装が安定するまで Firefox では // "MozGamepadConnected" と // "MozGamepadDisconnected" を使うようです } function connected(evt) { var gamepad = evt.gamepad, id = gamepad.id, axes = gamepad.axes, index = gamepad.index, buttons = gamepad.buttons, timestamp = gamepad.timestamp; /* id - IdentString: パッド名や製品名など axes - RangeNumberArray: [axis:Number, ...] Axis情報の配列 -1.0 から 1.0 の値を取る -1.0 が up または left index - Number: ブラウザに接続されているパッドのインデックス(0~) 何個まで繋げられるかは不明 buttons - RangeNumberArray: パッドの全ボタンの押下情報(0.0~1.0) 押されていなければ0.0 timestamp - Number: axes または buttons が更新された時刻(ms)。 前回からの差分 */ } function disconnected(evt) { }
2012年の前半頃には一般にも公開され、
ブラウザゲームをよりリッチにしてくれそうです。
そろそろ、何を作るか考えておいたほうがよさそうですね。
おっと
"gamepad.buttons に格納されるボタンの順番は優先順" と仕様にありますが、
実際のボタンの順番と API から取れてくる順番の違いはユーザにはわからないので、
それらを可視化する表示や設定画面が必要そうですね。