VC++ でジョイパットの状態を入力する必要があり調べてみました.
キーワードは joyGetPos です.
#include <MMSystem.h> #pragma comment(lib,"winmm.lib") |
と頭に書いて, 後は適当な所で
JOYINFO j; joyGetPos(JOYSTICKID1, &j); |
すると j.wXpos, j.wYpos に十字ボタン, j.wButtons にボタンの状態が入ります.
数値の意味は使っているジョイスティック/ジョイパットによって 変わるのかもしれませんが, 手持ちのジョイパットでは
ちなみに analog と書かれたボタンがあって, それを押すと 十字キーの代わりにアナログスティックが有効になります. これを有効にすると, 左側のアナログスティックの左右角に 応じて wXpos が, 前後角に応じて wYpos が, 右側のアナログスティックの左右角に応じて wZpos が 変化しますが, どうも角度と数値が一対一対応でなく, かつリニアで無いため適当なビット演算が必要な気がします. 上位 4bit くらいしかアテにならないのかな?