■
/ 3階層)
ゲームパッド対応てムリですか?
□投稿者/ 一般人
【153.204.46.195】(2016/03/22(Tue) 19:02:57)
■
No7434
に返信(ムガさんの記事)
> 雪乃☆雫さん、こんにちは〜!
> 回答ありがとうございます!
>
> そうですねぇ。普通にキーボード入力のプログラムでも苦戦してます。
>
> 自分なりにググって探してみたのですが
> やっぱJoyToKeyが有名どころみたいですねぇ。私も使ってます。
> なかなか再配布OKてのはみつからないですねぇ。
>
> いまのところてまだまだ先の話ですが
> もしゲームを公開することがあれば
> JoyToKeyの使用お勧めします〜みたいにしようかなと考えてますけど
>
> なにかお勧めあったらよろしくお願いします。
Joystickの入力は一般的にはDirectInputが大半だと思いますが
winmm.dllにある関数を使えばなでしこ+DLLから関数取り込みだけで完結させることができそうです。
(なでしこで取り込めるようにするまでかなり時間がかかってしまいました。)
何かわからないことがあれば可能な限りは対応します。
サンプルプログラムを作ってみました。
どの値がJoystickのどこに対応しているかは、
■JOYINFOEXの変数名であたりをつけてください。
注意点としては0番目に接続されているJoystickが読み込まれます。
また、実装がかなりテキトーになっているので正しいプログラムとは限りません。
構造体、ポインタ系の解説は自分が理解し切れていないので割愛します。
#サンプルここから
!JOYERR_NOERROR = 0 //情報取得時にエラーがないときに返される値
!JOY_RETURNALL = 255 //Joystickの情報を全て取り込む値
ラベル1とはラベル
そのテキスト=「」
AとはJOYINFOEX
A.dwSize = 52 //Cで言うsizeof()がわからなかったためマジックナンバー
A.dwFlags = JOY_RETURNALL
Bとは文字列
PACK(A,B,`DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD`)
1の間
もし、joyGetPosEx(0, POINTER(B))=JOYERR_NOERRORならば
UNPACK(B,A,`DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD`)
ラベル1のテキスト=HEX(A.dwButtons)
//ボタン検知はここ
違えば
ラベル1のテキスト=「取得できません。」
0.1秒待つ
//Joystickの情報を取り込む関数
●joyGetPosEx(uJoyID,{参照渡し}pji) =DLL("winmm.dll","UINT joyGetPosEx(UINT uJoyID,LPJOYINFOEX pji)")
//Joystickの最大サポート数(?)今回は未使用
●joyGetNumDevs =DLL("winmm.dll","UINT joyGetNumDevs(VOID)")
//JOYINFOEXの構造体をグループで構成
■JOYINFOEXとは
・dwSize
・dwFlags
・dwXpos
・dwYpos
・dwZpos
・dwRpos
・dwUpos
・dwVpos
・dwButtons
・dwButtonNumber
・dwPOV
・dwReserved1
・dwReserved2
#ここまで
参考URL:
なでしこでの構造体の扱い:
http://nade.jp-pro.net/bbs/bbs3/cbbs.cgi?mode=one&number=8959&type=0&space=0&no=0
winmm.dll-joyGetPosEx():
https://msdn.microsoft.com/ja-jp/library/cc410475.aspx
削除キー/
編集
削除
テキスト
関連内容&回答
ゲームパッド対応てムリですか?
/ ムガ (16/03/19(Sat) 01:59)
[#7400]
└
Re[1]: ゲームパッド対応てムリですか?
/ 雪乃☆雫 (16/03/22(Tue) 10:00)
[#7432]
└
Re[2]: ゲームパッド対応てムリですか?
/ ムガ (16/03/22(Tue) 16:37)
[#7434]
解決済み!
└
ゲームパッド対応てムリですか?
/ 一般人 (16/03/22(Tue) 19:02)
[#7435]
【 表 示 内 容 】
└
有力な情報ありがとうございます!
/ ムガ (16/03/22(Tue) 23:58)
[#7438]
├
Re[5]: 有力な情報ありがとうございます!
/ 一般人 (16/03/23(Wed) 21:16)
[#7441]
│└
Re[6]: 有力な情報ありがとうございます!
/ ムガ (16/03/24(Thu) 19:56)
[#7448]
解決済み!
└
Re[5]: 有力な情報ありがとうございます!
/ 雪乃☆雫 (16/03/23(Wed) 17:34)
[#7439]
├
Re[6]: 有力な情報ありがとうございます!
/ うぇいく (16/03/23(Wed) 22:42)
[#7442]
│└
Re[7]: 有力な情報ありがとうございます!
/ ムガ (16/03/24(Thu) 20:04)
[#7449]
解決済み!
│ └
Re[8]: 有力な情報ありがとうございます!
/ 雪乃☆雫 (16/03/25(Fri) 03:58)
[#7451]
│ └
Re[9]: 有力な情報ありがとうございます!
/ ムガ (16/03/26(Sat) 01:07)
[#7455]
解決済み!
└
これは確実に使える!!
/ ムガ (16/03/23(Wed) 19:01)
[#7440]
解決済み!
Name
/
E-Mail
/
Title
/
URL
/
■No7435に返信(一般人さんの記事) > ■No7434に返信(ムガさんの記事) >>雪乃☆雫さん、こんにちは〜! >>回答ありがとうございます! >> >>そうですねぇ。普通にキーボード入力のプログラムでも苦戦してます。 >> >>自分なりにググって探してみたのですが >>やっぱJoyToKeyが有名どころみたいですねぇ。私も使ってます。 >>なかなか再配布OKてのはみつからないですねぇ。 >> >>いまのところてまだまだ先の話ですが >>もしゲームを公開することがあれば >>JoyToKeyの使用お勧めします〜みたいにしようかなと考えてますけど >> >>なにかお勧めあったらよろしくお願いします。 > > Joystickの入力は一般的にはDirectInputが大半だと思いますが > winmm.dllにある関数を使えばなでしこ+DLLから関数取り込みだけで完結させることができそうです。 > (なでしこで取り込めるようにするまでかなり時間がかかってしまいました。) > 何かわからないことがあれば可能な限りは対応します。 > > サンプルプログラムを作ってみました。 > どの値がJoystickのどこに対応しているかは、 > ■JOYINFOEXの変数名であたりをつけてください。 > 注意点としては0番目に接続されているJoystickが読み込まれます。 > また、実装がかなりテキトーになっているので正しいプログラムとは限りません。 > 構造体、ポインタ系の解説は自分が理解し切れていないので割愛します。 > > #サンプルここから > !JOYERR_NOERROR = 0 //情報取得時にエラーがないときに返される値 > !JOY_RETURNALL = 255 //Joystickの情報を全て取り込む値 > > ラベル1とはラベル > そのテキスト=「」 > > AとはJOYINFOEX > A.dwSize = 52 //Cで言うsizeof()がわからなかったためマジックナンバー > A.dwFlags = JOY_RETURNALL > Bとは文字列 > PACK(A,B,`DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD`) > > 1の間 > もし、joyGetPosEx(0, POINTER(B))=JOYERR_NOERRORならば > UNPACK(B,A,`DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD`) > ラベル1のテキスト=HEX(A.dwButtons) > //ボタン検知はここ > 違えば > ラベル1のテキスト=「取得できません。」 > 0.1秒待つ > > //Joystickの情報を取り込む関数 > ●joyGetPosEx(uJoyID,{参照渡し}pji) =DLL("winmm.dll","UINT joyGetPosEx(UINT uJoyID,LPJOYINFOEX pji)") > //Joystickの最大サポート数(?)今回は未使用 > ●joyGetNumDevs =DLL("winmm.dll","UINT joyGetNumDevs(VOID)") > > //JOYINFOEXの構造体をグループで構成 > ■JOYINFOEXとは > ・dwSize > ・dwFlags > ・dwXpos > ・dwYpos > ・dwZpos > ・dwRpos > ・dwUpos > ・dwVpos > ・dwButtons > ・dwButtonNumber > ・dwPOV > ・dwReserved1 > ・dwReserved2 > #ここまで > > 参考URL: > なでしこでの構造体の扱い: http://nade.jp-pro.net/bbs/bbs3/cbbs.cgi?mode=one&number=8959&type=0&space=0&no=0 > winmm.dll-joyGetPosEx(): https://msdn.microsoft.com/ja-jp/library/cc410475.aspx
Icon
/
質問
回答
解決
注意
過去
補足
(画像を選択/
サンプル一覧
)
削除キー
/
(半角8文字以内)
確認キー
/
(”質問掲示板”と記入)
解決済み!
BOX/
解決したらチェック
Pass/
BBS CGI
RSS CGI
Child Tree
RSS/SPAM対応版