/ 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
削除キー/

 
関連内容&回答

Nomal ゲームパッド対応てムリですか? / ムガ (16/03/19(Sat) 01:59) [#7400]
Nomal Re[1]: ゲームパッド対応てムリですか? / 雪乃☆雫 (16/03/22(Tue) 10:00) [#7432]
  └Nomal Re[2]: ゲームパッド対応てムリですか? / ムガ (16/03/22(Tue) 16:37) [#7434] 解決済み!
    └Nomal ゲームパッド対応てムリですか? / 一般人 (16/03/22(Tue) 19:02) [#7435] 【 表 示 内 容 】
      └Nomal 有力な情報ありがとうございます! / ムガ (16/03/22(Tue) 23:58) [#7438]
        ├Nomal Re[5]: 有力な情報ありがとうございます! / 一般人 (16/03/23(Wed) 21:16) [#7441]
        │└Nomal Re[6]: 有力な情報ありがとうございます! / ムガ (16/03/24(Thu) 19:56) [#7448] 解決済み!
        └Nomal Re[5]: 有力な情報ありがとうございます! / 雪乃☆雫 (16/03/23(Wed) 17:34) [#7439]
          ├Nomal Re[6]: 有力な情報ありがとうございます! / うぇいく (16/03/23(Wed) 22:42) [#7442]
          │└Nomal Re[7]: 有力な情報ありがとうございます! / ムガ (16/03/24(Thu) 20:04) [#7449] 解決済み!
          │  └Nomal Re[8]: 有力な情報ありがとうございます! / 雪乃☆雫 (16/03/25(Fri) 03:58) [#7451]
          │    └Nomal Re[9]: 有力な情報ありがとうございます! / ムガ (16/03/26(Sat) 01:07) [#7455] 解決済み!
          └Nomal これは確実に使える!! / ムガ (16/03/23(Wed) 19:01) [#7440] 解決済み!



Name/
E-Mail/
Title/
URL/
Icon/ (画像を選択/サンプル一覧)
削除キー/ (半角8文字以内)
確認キー/ (”質問掲示板”と記入)
解決済み! BOX/ 解決したらチェック
 

Pass/

BBS CGI RSS CGI
Child Tree RSS/SPAM対応版