2015-11-22 2 views
0

J'essaie d'utiliser un contrôleur ps3 pour un jeu que je crée. J'ai téléchargé l'extension sharpDX.DirectInput dans ma solution XNA de studio visuel, et j'ai utilisé le code apparemment simple de la réponse de Valdemar au Taking input from a joystick with C# .NET. J'ai déjà réduit le problème au fait qu'il ne peut pas trouver le guid du contrôleur, ni le guid d'autres périphériques connectés par USB, comme un clavier. Cela fonctionne cependant pour le clavier intégré de mon ordinateur portable. Voici mon code:ne trouve pas de joystick guid en utilisant sharpDX directinput

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); 

Le problème est que le contrôleur reste nulle, ce qui signifie que le guid reste vide, ce qui signifie que la méthode GetDevices ne trouve pas un gamepad. Ce qui est étrange parce que le contrôleur fonctionne parfaitement dans Windows 7 et visible dans le gestionnaire de périphériques comme HID et comme contrôleur commun Microsoft pour la classe Windows. Par la suite, j'ai eu le même problème en utilisant Microsoft.DirectX.directInput.

Merci pour la lecture :)

Répondre

0

Je ne sais toujours pas pourquoi ça n'a pas marché. Mais j'ai essayé quelque chose de mieux. Avec un tutoriel sur youtube j'ai installé un pilote qui "converti" le contrôleur DS3 en un contrôleur xbox. En d'autres termes, Windows pense maintenant qu'il y a un contrôleur xbox connecté.

Maintenant, je peux utiliser la classe GamePad de la bibliothèque xna qui est conçue pour les contrôleurs xbox 360.

http://steamcommunity.com/app/258970/discussions/0/613937306592303709/?l=dutch lire les commentaires de ce lien pour plus de pilotes mis à jour.