Crear un juego para Xbox 360 usando XNA Por: Yolanda Martínez Treviño 2 November 09 Requerimientos para correr juegos de XNA en Xbox 360 • El Xbox 360 debe estar equipado con disco duro. • La consola de Xbox debe estar conectada a Internet. • Se requiere tener suscripción a Xbox Live Silver o mejor. • Se requiere ser miembro del XNA Creators Club (http:// creators.xna.com) 3 November 09 Juegos para el Xbox • Cuando se desarrollan juegos en XNA para correrlos en un Xbox 360 las 2 máquinas usan la conexión a Internet para comunicarse. • Hay un procedimiento que se debe seguir para conectar ambos equipos. • La descripción detallada de los pasos para hacer esta conexión se puede ver en el Help de la aplicación XNA Game Studio Device Center que viene como parte de la instalación del XNA. Crea un nuevo proyecto seleccionando Xbox 360 Game El Game1.cs • El código Game1.cs que XNA genera para un Xbox Game es exactamente el mismo que genera para un Windows Game. • Sí hay diferencias, pero están ocultas para los programadores. • Entonces, escribe tu programa de XNA como de costumbre, lo que cambia es la forma de tomar la entrada del usuario, que ahora viene de un Control. El control del Xbox Right Trigger Left Trigger Left Shoulder Back Start Right Shoulder Y Left Thumbstick B A Dpad X Right Thumbstick Botones digitales • El control del Xbox 360 tiene 14 botones digitales. Los botones digitales tienen 2 estados: Pressed, Released ▫ ▫ ▫ ▫ ▫ ▫ ▫ A B X Y Start Back Left Shoulder ▫ ▫ ▫ ▫ ▫ ▫ ▫ Rigth Shoulder Dpad – Left Dpad – Right Dpad – Up Dpad – Down Presionar el Left Thumbstick Presionar el Right Thumbstick Tomar la entrada de los botones digitales del GamePad Al crearse un juego en XNA siempre aparece la siguiente línea dentro del método Update: if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit(); Con esto se está consultando si el botón Back del primer control del Xbox está presionado. Tomar la entrada de los botones digitales del GamePad • De la misma forma se puede usar: if ( GamePad.GetState(PlayerIndex.One).Buttons.A B == ButtonState.Pressed) LeftShoulder RightShoulder Start X Y Tomar la entrada del botón DPad • Para verificar si está presionado el botón Dpad se usa lo siguiente: if ( GamePad.GetState(PlayerIndex.One).DPad.Left Right == ButtonState.Pressed) Up Down Botones Análogos • El Control del Xbox tiene 4 botones análogos: • Los 2 triggers • Los 2 thumbstick Los botones Trigger • El estado de un trigger se representa con un valor flotante que puede ir desde 0.0 (no presionado) hasta 1.0 (totalmente presionado). Los botones thumbstick • Los botones thumbstick tienen un eje X y un eje Y; que pueden tomar un valor entre -1 y 1. • En el eje X el valor -1 representa que se está moviendo el thumbstick completamente hacia la izquierda y en valor 1 que se está moviendo completamente hacia la derecha. • De manera similar para el eje Y los valores -1 y 1 representan el movimiento hacia abajo y hacia arriba respectivamente. Agregando vibración al control • El control tiene 2 motores de vibración. • El motor izquierdo es un motor de baja frecuencia y el motor derecho es un motor de alta frecuencia. • Cada motor se puede activar de manera independiente y soporta diferentes velocidades con valores que van de 0.0 a 1.0. Agregando vibración al control • El método SetVibration tiene 3 parámetros ▫ Cuál control ▫ La velocidad de vibración para el motor izquierdo ▫ La velocidad de vibración para el motor derecho • Por ejemplo: ▫ GamePad.SetVibration(PlayerIndex.One, 1.0f, 1.0f) hace que ambos motores del control 1 vibren a la máxima velocidad.