2014年8月5日火曜日

JavaScriptとキーボード

最近のゲームはタッチパッドだけで遊ぶものも多いのですが、
スーパーマリオのようなアクションゲームは物理キーで遊ぶに限ります。
JavaScriptでも物理キーボードによる入力は可能で、
window.onkeydownイベント発生時にキーコードを調べることで押されたキーがわかります。
カーソル(上下左右)キー、スペースキー、Enterキーは以下のように判別できます。
window.onkeydown=function(e){
 switch(e.keyCode){
 case 32: // space key
 case 13: // enter key (A button on 3DS/WiiU)
  return false;
 case 37: // left key
  return false;
 case 38: // up key
  return false;
 case 39: // right key
  return false;
 case 40: // down key
  return false;
 }
 return true;
};
ここでreturnをfalseにしておくとその後のキー処理がされません。
カーソルキーでゲームのキャラクタを動かせるけど
同時にスクロールしてしまうような現象はfalseを返せば防げます。

なお、キー入力はNintendo3DSWiiUのウェブブラウザでも使え、
カーソルキーはコントローラの十字キー、
EnterキーはコントローラのAボタンに割り当てられています。
このあたりWiiUの詳細は任天堂のサイトに詳しく書かれています。
上記5キー以外の情報についてはポーリングしないとわからないのでちょっとつまんないですね。

0 件のコメント:

コメントを投稿