トップページ > 記事閲覧
ジョイパッドのバイブレーション
名前:別々に振動 日時: 2014/08/15 16:52

Dxlibでのジョイパッドを振動させる関数として、 int StartJoypadVibration( int InputType, int Power, int Time ) ; があります。 これだと例えば1つのコントローラに2個のモーターがあった場合に必ず両方とも振動してしまいます。 しかし、DirectXでは左右のモーターを別々に振動させることができるみたいです。 Dxlibで左右別々に振動させるには方法はないのでしょうか?? Dxlibのソースを改造しようかとも思いましたが、Borland C++のみなのでよくわかりません・・・・。 よければどなたか、左右のモータを別々に振動できるような関数(ヘッダ+libの組み合わせ可能)も作ってください。お願いします。
メンテ

Page: 1 |

Re: ジョイパッドのバイブレーション ( No.1 )
名前:別々に振動 日時:2014/08/15 18:33

追記です。 Dxlibのソースを解析したところ、 StartJoypadVibration(int型の引数3つ) ↓呼び出す NS_StartJoypadVibration(int型の引数3つ) ↓呼び出す RefreshEffectPlayState(void) の階層になっています。 このRefreshEffectPlayState関数内に、 VibState.wLeftMotorSpeed VibState.wRightMotorSpeed の2つの変数があります。 初期化処理や代入を削除して、 代わりにこれを引数で上2つの関数に渡し続ければ大丈夫かと思います。 ビルドできる方や、他にアドバイスなど頂けるとありがたいです。
メンテ
Re: ジョイパッドのバイブレーション ( No.2 )
名前:別々に振動 日時:2014/08/15 18:46

そして最終的には、 int StartJoypadVibration( int InputType, int RightPower, int LeftPower, int Time ) ; みたいな関数があると便利だと思うのですが・・・・。 勇者の方お願いします。
メンテ
Re: ジョイパッドのバイブレーション ( No.3 )
名前:管理人 日時:2014/08/16 18:41

StartJoypadVibration と StopJoypadVibration に左右どちらのモーターに対して 操作を行うかを指定するための引数 EffectIndex を追加しました( -1 を渡すと今までと同じ動作 ) // ジョイパッドの振動を開始する int StartJoypadVibration( int InputType, int Power, int Time, int EffectIndex = -1 ) ; // ジョイパッドの振動を停止する int StopJoypadVibration( int InputType, int EffectIndex = -1 ) ; EffectIndex に 0 を渡すと左モーター、1 で右モーターに対する操作となります ( 現在はモーターは左右の二つですが、今後左右ではない配置のモーターを持つデバイスが 登場するかもしれませんので、DX_PADMOTOR_LEFT のような定数は追加していません ) 上記関数を追加したバージョンをこちらにアップしましたので、 よろしければお試しください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
メンテ
Re: ジョイパッドのバイブレーション ( No.4 )
名前:別々に振動 日時:2014/08/19 13:25

>>管理人様 今、スレ確認しました。 大変ありがとうございます。 なんとお詫びしたらよいでしょうか・・・。 私は、大学でロボット系の研究をしていたので、 モーター制御に関してはうるさかったのですw 早速、試しに使わせていただきます。 つまり最後の第4引数の、EffectIndex に0なら左側のみ振動、1なら右側のみ振動、 -1又は指定なしなら今まで通り両方振動というものですね。 大変わかりやすくありがとうございます。 今、動作確認中です。 【右側を強く、左側を弱く】させたい場合は、 Powerを変え、関数を2つ列挙させればいいわけですね。 今度、PS2のコントローラーでゲームと連動する ラジコンカーも作れそうですw(誰得??)
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存