現在、開発凍結されています。ここに記載されている内容は、現在実現の目処はたっていません。
06/10/25
概要
キー及びマウス入力を担う。
キー入力においては、通常のキー状態取得に加え、それぞれのキーに役割を与え、その役割を示すIDでその役割を果たすキー(仮想キー)の状態を取得できる。
マウス入力においては、マウスボタンの押下情報及び、グラフィックエンジンにより拡大された画面に応じたマウス位置を取得することができる。
使用方法
グローバル変数でBWInputが用意されているのでそれを使う。
プログラムの初期化中に最低一度BWInput.Initを、終了処理中にBWInput.Quitを呼び出さなければならない。
キー情報の更新にUpdateを使うので毎フレームBWInput.Updateを呼び出す必要がある。
マウス位置の補正にCBWDrawを使用しているのでCBWDrawもプロジェクトに加えなければならない。
仮想キーの設定にはGetVKeyDefinitionを使う。
なお、初期状態で以下のように仮想キーが設定されている。
m_nVKey[DIK_ESCAPE] = BWK_EXIT;
m_nVKey[DIK_UP] = BWK_UP;
m_nVKey[DIK_NUMPAD8] = BWK_UP;
m_nVKey[DIK_LEFT] = BWK_LEFT;
m_nVKey[DIK_NUMPAD4] = BWK_LEFT;
m_nVKey[DIK_RIGHT] = BWK_RIGHT;
m_nVKey[DIK_NUMPAD6] = BWK_RIGHT;
m_nVKey[DIK_DOWN] = BWK_DOWN;
m_nVKey[DIK_NUMPAD2] = BWK_DOWN;
m_nVKey[DIK_Z] = BWK_OK;
m_nVKey[DIK_SPACE] = BWK_OK;
m_nVKey[DIK_X] = BWK_CANCEL;
m_nVKey[DIK_TAB] = BWK_NEXT;
m_nVKey[DIK_LSHIFT] = BWK_SHIFT;
m_nVKey[DIK_RSHIFT] = BWK_SHIFT;
メンバ関数
CDirectInput* GetCDirectInput()
キー入力クラスを取得する。
通常IsKey~関数を呼び出せばよいので使う必要はない。
CMouseEx* GetCMouseEx()
マウス入力クラスを取得する。
通常IsMouse~関数、GetMouse~関数があるので使う必要はないが、生のマウス情報を得たい場合には利用可能。
BYTE* GetKeyData()
キー入力情報を取得する。
通常IsKey~関数を呼び出せばよいので使う必要はない。
int GetMouseX()
グラフィックエンジンによる補正をかけてマウスのX座標を得る。
LRESULT GetMouseXY(int &x,int &y)
グラフィックエンジンによる補正をかけてマウスの座標を得る。
int GetMouseY()
グラフィックエンジンによる補正をかけてマウスのY座標を得る。
int*GetVKeyDefinition()
仮想キー配列のポインタを得る。
これを使うことにより特定のキーに役割を割り当てることができる。
例:
BWInput.GetVKeyDefinition()[DIK_V] = 100;
void Init(CBWDraw* lpDraw)
グラフィックエンジンを指定し、初期化を行う。
これを呼び出した時点で各種関数が使えるようになる。
初期化済みの状態で呼び出すとグラフィックエンジンの変更だけを行う。
lpDrawにはNULLも指定可能(その場合は補正がかからない)。
bool IsKeyPress(int key)
キーが押されているかを調べる。
bool IsKeyPush(int key)
このフレームでキーが押されたかどうかを調べる。
すなわち、前回Updateを呼び出した時点でそのキーが押されておらず、なおかつ今回のUpdateの時点で押されているとtrueとなる。
bool IsMouseInRect(LPRECT rect)
マウスの位置がrectの内部にあるかどうかを調べる。
bool IsMousePressLButton()
マウスの左ボタンが押されているかどうかを調べる。
bool IsMousePressRButton()
マウスの右ボタンが押されているかどうかを調べる。
bool IsMousePushLButton()
このフレームでマウスの左ボタンが押されたかどうかを調べる。
bool IsMousePushRButton()
このフレームでマウスの右ボタンが押されたかどうかを調べる。
bool IsMousePushUpLButton()
このフレームでマウスの左ボタンが離されたかどうかを調べる。
bool IsMousePushUpRButton()
このフレームでマウスの右ボタンが離されたかどうかを調べる。
bool IsVKeyPress(int vkey)
仮想キーが押されているか調べる。
bool IsVKeyPush(int vkey)
このフレームで仮想キーが押されたかどうか調べる。
void Quit()
使用を中止し未初期化の状態に戻す。
未初期化の状態で使っても副作用はない。
void Update()
キー状態及びマウス状態を更新する。
全ての入力情報は最後にこれを呼び出した時点のものとなる。