Esta entrada está dedicada para enseñar cómo se puede detectar los controles de XBOX inalámbricos conectados a un receptor inalámbrico (PC Wireless Gaming Receiver) con C# .Net sin utilizar XNA.
Para poder detectar los controles haremos uso de una librería externa de nombre SlimDX, esta librería la podemos bajar por medio de Nuget o de su pagina http://slimdx.org/. SlimDX es una librería Open Source que nos permite construir programas usando DirectX, y una de sus funciones es detectar los Joystick.
También utilizaremos la clase GamepadState que ha hecho Renaud Bédard y podemos descargarla de su sitio, él ya nos facilita lo necesario para detectar los botones del control, palancas etc. Igual anexo la clase en esta liga, solo tienen que copiar y pegar el código en una clase del proyecto de Visual Studio.
Ahora que ya tenemos la librería SlimDX y la clase GamepadState solo nos queda comenzar a utilizar y detectar el control de la siguiente manera:
using SlimDX.XInput; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ControlXBox { class Program { static void Main(string[] args) { //creamos una instancia GamepadState y le enviamos la constante de control numero 1 GamepadState control = new GamepadState(UserIndex.One); //ahora detectamos si el controll esta conectado if (control.Connected) { Console.WriteLine("El control esta conectado"); //creamos un ciclo infinito solo para detectar el control cada que presionemos un boton while(true){ //detectamos si se realizo una modificación, se presiono un botón o se movio una palanca etc. control.Update(); //imprimimos el boton presionado en consola Console.WriteLine(control.Controller.GetState().Gamepad.Buttons.ToString()); } } else { //Si el control no esta conectado mostramos mensaje de que no esta conectado :( Console.WriteLine("El control NO esta conectado"); Console.ReadLine(); } } } }
Cree un proyecto de consola de Visual Studio y aquí plasmo el resultado en video para que puedan ver que funciona bien:
Cualquier duda en los comentarios pueden preguntar.