Win32アプリケーションでジョイスティックを使うにはDirectInputを利用する方法もあるが、JOYINFOを使うともっと簡単にできる。
#include "mmsystem.h" #pragma comment(lib, "winmm.lib") JOYINFO JoyInfo; if ( joyGetPos(JOYSTICKID1,&JoyInfo) == JOYERR_NOERROR) { if(JoyInfo.wXpos<0x3fff) { // 左を押したときの処理 } if(JoyInfo.wXpos>0xbfff) { // 右を押したときの処理 } if(JoyInfo.wYpos<0x3fff) { // 上を押したときの処理 } if(JoyInfo.wYpos>0xbfff) { // 下を押したときの処理 } if(JoyInfo.wButtons & JOY_BUTTON1) { // ボタン1を押したときの処理 } if(JoyInfo.wButtons & JOY_BUTTON2) { // ボタン2を押したときの処理 } }
確認しようと思ったらWindowsで使えるジョイスティックが手元に無かった。なので確認はまた明日。
(追記:2006-08-17)
ジョイスティックで動作を確認。また上下左右のコメントの位置が間違っていたので修正。