miércoles, 24 de octubre de 2007

Xna - Control del Gamepad

Dadas algunas consultas, voy a indicar el acceso al gampad de Xbox 360. El mismo es USB y se conecta y se detecta automáticamente en Windows sin ningún problema. Es un buen pad como para nuestros juegos de PC también asi que si sumamos a eso que XNA lo controla nativamente, es una buena opción.
Bueno como les comentaba, XNA toma por defecto el control conectado y le asigna el número de jugador(PlayerIndex) indicado por la luz del mismo: One,Two, etc.
Podemos entonces decidir de esta forma cual es el jugador que está utilizando el control y ver el estado de sus botones, Sticks y direccionales:
(GamePad.GetState(PlayerIndex.One).Buttons.X == ButtonState.Pressed)
En este ejemplo devuelve un booleano en true si el botón X de nuestro control está presionado, pudiendo también controlar el ButtonState.Released para controlar si se ha liberado.

Eso es todo lo necesario en general para el manejo, excepto que los Sticks devuelve un valor Float con la posición en X e Y:
GamePad.GetState(PlayerIndex.One).ThumbSticks.Left.X

Otra de las funciones que podemos utilizar es la vibración de los controles, a la cual se accede de la siguiente forma:
GamePad.SetVibration(PlayerIndex.One, 0.5f, 0.5f)
Indicamos con un valor entre 0 y 1 la velocidad del motor.

Espero que les sirve y cualquier consulta acá estoy.

1 comentario:

Anónimo dijo...

Tengo el problema que una vez habiendo instalado los drivers (XBCD), comienza a funionarme para todas las aplicaciones, menos para el XNA (es como si no hubiera nada conectado). Alguna idea?