C++ ジョイスティックの使用 メモ

ジョイスティックの使用

※「マイコンピュータ」→「コントロールパネル」→「ゲームコントローラ」で、

「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()で表示して確認。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください