仮想コントローラーというのか?

アバター
GRAM
記事: 164
登録日時: 14年前
住所: 大阪

仮想コントローラーというのか?

投稿記事 by GRAM » 14年前

コントローラーの処理をお任せにできるクラスを製作中(完成度70%)
DxLib使えばいいんじゃね?とお思いかもしれませんが、うちのPSPコントローラーさんはいくつかのボタンが認識されてくれません(泣)

という事でDirectInputだ~~!
はい。初めて触っています。
設定がちょいとめんどくさい。もう二度とやりたくないから、ライブラリにしてしまう事を目標にしてます。

どういうものを作りたいかというと、
①キーボード、マウス、ジョイスティック関係なしに、それぞれのボタンや機能を一つの仮想コントローラーのものとしてプログラム側で扱える
②そんなことしてキーコンフィグをプログラム側でやると大変だから、これを外部ファイルに。
③バイナリ形式だとファイルを直接いじるのがめんどくさそうだから、外部ファイルはテキスト形式にする

例えば8方向キーを十字キーとして認識したい事(逆もしかり)や、アナログスティックを十字キーとして認識したい事ってあるじゃないですか。
とかキーの数が足りなくって、いくつかのボタン組み合わせて一つのボタンにすることもあるかもしれないじゃないですか。
とかキーボードのスペースキーと、コントローラーのスタートボタンは同じボタンとして認識したいことってあるじゃないですか
とかマウスをアナログスティック的に使いたいこともあるかもしれないじゃないですか(マインクラフトのように)
…取り敢えずこれらの機能を付ける

で、現在どれくらい進んだのかというとマウス関連の処理以外はできました!(チャットで助けて下さった方ありがとうございましたm(_ _)m )

InputManager::Create()で全デバイスを取得
InputManager::Instance()->Initialize()で初期化
InputManager::Release()で全解放
というゆとり仕様
あとはKeyIDという列挙体をプログラム側で用意しボタン番号を格納して
long InputManager::GetKeyState(KeyID) で呼び出せばよいという感じにしました。(他にもアナログスティックの位置を取得する関数を用意したり)
HRESULT LoadKeyConfigFile(const std::wstring& fileName = L"default.dat"); でキーコンフィグファイルを読めます
キーコンフィグ用のファイルはこんな感じ
► スポイラーを表示
・・・と現状こんな感じ。
まだまだ改善点も多そうだから、がんばります^^;

コメントはまだありません。