ジョイスティックの使用
※「マイコンピュータ」→「コントロールパネル」→「ゲームコントローラ」で、
「2軸 2ボタンのジョイスティック」があるかどうか確認
無い場合は、追加しておく。
また各自で調整しておくこと。
1、ジョイスティックデータの取得
・winmm.libが必要なので、追加していない場合は
#pragma commentなどで追加しておく。
・joyGetPosEx関数で、
JOYINFOEX型の構造体の中に、データをうけとる。
●JOYINFOEX型構造体
主なメンバ
long dwSize ・・・構造体事態の大きさを代入しておく。
long dwFlags ・・・どんなデータを取得するか。
JOY_RETURNBUTTONS(ボタンのデータ)
JOY_RETURNX(十字キー左右)
JOY_RETURNY(十字キー上下)
の3つを「|」(OR)でつなげて指定。
long dwXpos ・・・十字キー左右のデータをうけとる。
long dwYpos ・・・十字キー上下のデータをうけとる。
long dwButtons ・・・ボタンのデータをうけとる。
例、
JOYINFOEX JoyData;
JoyData.dwSizeize = sizeof(JOYINFOEX)
JoyData.dwFlags = JOY_RETURNBUTTONS | JOY_RETURNX | JOY_RETURNY;
●joyGetPosEx関数
定義 : MMRESULT joyGetPosEx(ジョイスティックID,JOYINFOEX*);
引数 : ジョイスティックID・・・JOYSTICKID1 か
JOYSTICKID2 を使う。
今回は、JOYSTICKID1。
JOYINFOEX * ・・・・・データをうけとるJOYINFOEX構造体のアドレス
戻値 : MMRESULT ・・・・・・ JOYERR_NOERRORで成功。
例、
MMRESULT ret;
ret = joyGetPosEx(JOYSTICK1,&JoyData);
※JoyDataの中にジョイスティックのデータが入る。
ret == JOYERR_NOERRORなら成功
サンプル
・winmm.libを追加していない場合、
WinMain()にあるファイルに
#pragma comment(lib,”winmm.lib”)
を追加
・JOYINFOEX JoyData; を外部変数で宣言
GameCreate()など、ゲームの準備をする所で
JoyData.dwsize = sizeof(JOYINFOEX);
JoyData.dwFlags = JOY_RETURNBUTTONS | JOY_RETURNX | JOY_RETURNY;
を代入しておく。
・GameMain()で、
MMRESULT ret;
ret = joyGetPosEx(JOYSTICKID1,&JoyData);
を実行
JoyData.dwXpos,JoyData.dwYpos,JoyData.dwButtons
の3つを、wsprintf(),TextOut()で表示して確認。