[Javascript] 格闘ゲームみたいなコマンドが打てるJavascriptのクラス作ってみました。
暇なときに面白いエントリー「お知らせ:「コナミコマンド」を実装しました | N-Styles」があったのでクラス化してみました.
雑な実装のしかたなんでソースが汚い。
コマンド判定
- キー入力の履歴
- キー入力の時間
- キー入力のパターン
- 長いコマンドを優先して実行
サンプル
はてなダイアリーだとJavascript貼れないのでここにサンプルを置いときました。
実装方法
一番シンプルな実装。
//インスタンスを作る var ac = new ActionCommand(); // コマンドを設定 ac.addCommandListener([40,[40,39],39,65],function(){ jsconsole.innerHTML='波●拳!'; });
- new ActionCommand([target])
- targetにはイベントを割り振りたい要素を指定
- new ActionCommand(document.getElememtById('target'));みたいにする。
- targetのデフォルトはdocument
- addCommandListener(commands, func[, expiryTime])
- コマンドの割当
- commandsはサンプルの様にキーコードを配列で指定、同時押しは上記のように配列で囲む(二次元配列)。
- funcはコマンドが打たれたときに実行。
- expiryTimeはコマンド認識時間をミリ秒で指定。(fpsも対応してあるけど)
- expiryTimeのデフォルトはcommands.lengthで自動的に計算。
- ソース
感想
意外とメンドクサイ、もっとラクに作れると思ってたのに。
追記
MITライセンスにしたので自由に使ってください。