突然ですが、ミニゲームを作ってみました。
製作の動機や元ネタとしては、
「自作したアケコンでなんかやりたいなー、
そうだ!格ゲーのコマンドをタイピングするゲームを作ろう!コマンドの練習になりそう!」
……でChatGPTに先行研究させていたときの産物がこちらだったのですね。
これをベースに(それはもう跡形もないくらいに)改造してできたのが今回のゲーム、という。
やっぱマニアックな仕様を入れたいというか、複雑になるとChatGPTのプロンプトだけでやるのは難しそうでしたね。
今回は全て生のJavaScriptで作っています。
ゲームのプレイはこちらから↓
実装で苦労したところ
実際の格ゲーにある仕様として、実際にされた入力を補助するような、簡易入力という機能があるのですが、それの判定がちょっとたいへんでした……。
アケコン自作してないと思いつかなかったであろう箇所として、隣接する入力をビット演算で処理してるところ。結構気に入ってる。
後は、JavaScriptのキーボード入力ってKeyPushとKeyReleaseで2回入るので、そのイベントの処理で考える事がありましたね。
例えば↘の斜め入力があるとき、→(KeyPush)↓(KeyPush)が入ったことが判定されてから初めて↘が入るので、無視しないとミス扱いになってしまうところとか。(Release時も同様)
一回転コマンドは途中で斜めの入力が入った場合でも許容するようにしているとか。
(とあるコマンドに至っては、専用の処理を入れて対策しているという……。原作ではどうなってるんだろう??)
なので実際のゲームより入力の判定は大分甘め?かもしれないです。(まぁ入力の時間制限もないし)
その辺はソースでまんま読めるので気になったら覗いてみてほしい。
筆者がそんなに格ゲーやらないので、ここの判定は実際と比べて挙動がおかしい!とかあったら指摘して貰えるとありがたいです。