1

作成中のゲームに ps3 コントローラーを使用しようとしています。私は、sharpDX.DirectInput 拡張機能をビジュアル スタジオの XNA ソリューションにダウンロードし、C# .NET を使用してジョイスティックから入力を取得するの Valdemar の回答から一見単純なコードを使用しました。私はすでに問題を、彼がコントローラーの GUID や、キーボードなどの他の USB 接続デバイスの GUID を見つけることができないという事実に絞り込みました。ただし、ラップトップの統合キーボードでは機能します。これが私のコードです:

directInput = new DirectInput();
// Find a Joystick Guid
foreach (var deviceInstance in directInput.GetDevices(DeviceType.Gamepad, DeviceEnumerationFlags.AllDevices))
guid = deviceInstance.InstanceGuid;
//create joystick
if (guid!=Guid.Empty)
    controller = new Joystick(directInput, guid);

問題は、コントローラーが null のままであることです。これは、GUID が空のままであることを意味し、GetDevices メソッドがゲームパッドを見つけられないことを意味します。コントローラーがWindows 7で完全に機能し、デバイスマネージャーでHIDおよびWindowsクラスのMicrosoft共通コントローラーとして表示されるため、これは奇妙です。

ところで、Microsoft.DirectX.directInput を使用して同じ問題が発生しました。

読んでくれてありがとう :)

4

2 に答える 2

0

なぜうまくいかなかったのか、いまだにわかりません。しかし、私はもっと良いものを試しました。YouTube のチュートリアルで、DS3 コントローラーを xbox コントローラーに「変換」するドライバーをインストールしました。つまり、Windows は、xbox コントローラーが接続されていると認識するようになりました。

これで、xbox 360 コントローラー用に設計された xna ライブラリの GamePad クラスを使用できるようになりました。

http://steamcommunity.com/app/258970/discussions/0/613937306592303709/?l=dutch更新されたドライバーについては、このリンクのコメントをお読みください。

于 2015-11-25T12:25:32.280 に答える