SlideShare una empresa de Scribd logo
1 de 21
Programación 3D
Agenda
 Describir como trabaja el efecto de vibración.
 Mostrar como un programa XNA puede
controlar la vibración de un gamepad.
 Adicionar vibración a un juego.
 Como poder cambiar el comportamiento de
un juego modificando el codigo.
VibracióndelgamepaddelXbox
 El gamepad tiene dos motores que controlan
dos ruedas.
 Las ruedas giran a diferentes velocidades
para hacer vibrar el gamepad.
 El juego puede controlar la fuerza dada a los
motores para obtener diferentes niveles de
vibración
Velocidaddevibración
 El motor de la izquierda
provee un sonido de baja
frecuencia.
 El motor de la derecha
provee una vibración de alta
frecuencia.
 XNA permite controlar la
fuerza que se les da a estos
motores
ControlarlavibracióndelgamepadenXNA
 Ya se ha utilizado la clase GamePad
anteriormente
 Sabemos que provee el método GatState que
es utilizado para leer el estado del juego.
 Además provee un método llamado
SetVibration, el cual es utilizado para
controlar la vibración del gamepad.
 El método contiene 3 parametros
GamePad.SetVibration ( PlayerIndex.One, 1, 0 ) ;
Seleccionarelgamepadacontrolar
 Este valor del parámetro identifica el
gamepad a ser controlado.
 Se utiliza este para decirle a GetSate de que
gamepad habrá que leer.
 Es posible intentar controlar otros gamepads,
que no están, pero el método no hará nada
GamePad.SetVibration ( PlayerIndex.One, 1, 0 ) ;
Configurarlosnivelesdevibración
 Este valor del parámetro, establece la
cantidad de vibración izquierda (baja
frecuencia) que el motor debe producir.
 El valor viene dado por un flotante entre 0 y 1
 En este caso se ha establecido la máxima
vibración.
 Si se establece el valor de cero, la vibración se
apaga.
GamePad.SetVibration ( PlayerIndex.One, 1, 0 ) ;
Establecerelniveldevibración
 Este valor del parámetro la cantidad de duración
en el lado derecho (frecuencia baja) que el
motor debe producir.
 Es un valor flotante entre cero y uno.
 Trabaja de la misma manera que el valor de las
izquierdas, pero el efecto de la liberación es un
poco diferente.
 Una vez que se ha configurado el nivel de
vibración, el pad continuará vibrando hasta que
se le diga algo diferente.
GamePad.SetVibration ( PlayerIndex.One, 1, 0 ) ;
Demostración.
protected override void Update(GameTime gameTime)
{
// Allows the game to exit
if (GamePad.GetState(PlayerIndex.One).Buttons.Back ==
ButtonState.Pressed)
this.Exit();
GamePadState pad1 = GamePad.GetState(PlayerIndex.One);
if (pad1.Buttons.X == ButtonState.Pressed)
GamePad.SetVibration(PlayerIndex.One, 1, 0);
base.Update(gameTime);
}sus
Detenerlavibración
 El programa debe decir al gamepad que debe de
tener la liberación cuando el botón no esté
presionado.
 Una manera fácil de alcanzar esto es adicionar
un “else” a la sentencia condicional.
 Esta versión del código hace que el gamepad
vive cuando el botón de color azul esté
presionado.
if (pad1.Buttons.X == ButtonState.Pressed)
GamePad.SetVibration(PlayerIndex.One, 1, 0);
else
GamePad.SetVibration(PlayerIndex.One, 0, 0);
Adicionarvibraciónaljuego
 El programa debe de hacer que el gamepad vibre
cuando la intensidad del color rojo este por
volverse cero.
 La condición debe comparar 2 valores y
ejecutarlo cuando uno mas grande que el otro.
if (redIntensity > 220)
GamePad.SetVibration(PlayerIndex.One, 1, 0);
else
GamePad.SetVibration(PlayerIndex.One, 0, 0);
Combinacióndepruebas
 Si queremos que la vibración comience
cuando cualquier color exceda el valor de 220.
 Realizamos la combinaciones respectivas
if (redIntensity > 220 ||
greenIntensity > 220 ||
blueIntensity > 220)
GamePad.SetVibration(PlayerIndex.One, 1, 0);
else
GamePad.SetVibration(PlayerIndex.One, 0, 0);
Usandolosbloquesparamejorarla
apariencia
 Crear bloques es una buena manera de
clarificar el código.
 En este caso se separa el código de la
condiciones.
if (redIntensity > 220 ||
greenIntensity > 220 ||
blueIntensity > 220)
{
GamePad.SetVibration(PlayerIndex.One, 1, 0);
}
else
{
GamePad.SetVibration(PlayerIndex.One, 0, 0);
}
Resumen
 El gamepad del Xbox tiene 2 motores de
vibración para diferentes frecuencias de
vibración en el gamepad.
 La clase GamePad, la cual es parte del XNA
provee un método llamado SetVibration el
cual controla la intensidad que los motores
producen.
 Una vez un gamepad ha comenzado a vibrar,
este seguirá hasta que se le de otra orden
diferente.
VerdaderooFalso
 El Xbox 360 contiene motores de vibración.
 Un programa XNA puede hacer que el teclado
vibre.
 Un programa XNA puede controlar solo la
vibración de un gamepad.
 La intensidad de la vibración de un gamepad
es dada por un valor entre 0 y 1
 El gamepad detiene la vibración cuando
pierde el contacto con el juego.
VerdaderooFalso
 El Xbox 360 contiene motores de vibración.
 Un programa XNA puede hacer que el teclado
vibre.
 Un programa XNA puede controlar solo la
vibración de un gamepad.
 La intensidad de la vibración de un gamepad
es dada por un valor entre 0 y 1
 El gamepad detiene la vibración cuando
pierde el contacto con el juego.
VerdaderooFalso
 El Xbox 360 contiene motores de vibración.
 Un programa XNA puede hacer que el teclado
vibre.
 Un programa XNA puede controlar solo la
vibración de un gamepad.
 La intensidad de la vibración de un gamepad
es dada por un valor entre 0 y 1
 El gamepad detiene la vibración cuando
pierde el contacto con el juego.
VerdaderooFalso
 El Xbox 360 contiene motores de vibración.
 Un programa XNA puede hacer que el teclado
vibre.
 Un programa XNA puede controlar solo la
vibración de un gamepad.
 La intensidad de la vibración de un gamepad
es dada por un valor entre 0 y 1
 El gamepad detiene la vibración cuando
pierde el contacto con el juego.
VerdaderooFalso
 El Xbox 360 contiene motores de vibración.
 Un programa XNA puede hacer que el teclado
vibre.
 Un programa XNA puede controlar solo la
vibración de un gamepad.
 La intensidad de la vibración de un gamepad
es dada por un valor entre 0 y 1
 El gamepad detiene la vibración cuando
pierde el contacto con el juego.
VerdaderooFalso
 El Xbox 360 contiene motores de vibración.
 Un programa XNA puede hacer que el teclado
vibre.
 Un programa XNA puede controlar solo la
vibración de un gamepad.
 La intensidad de la vibración de un gamepad
es dada por un valor entre 0 y 1
 El gamepad detiene la vibración cuando
pierde el contacto con el juego.
 Gracias por la atención.

Más contenido relacionado

La actualidad más candente

Electrònica y juegos de video
Electrònica y juegos de videoElectrònica y juegos de video
Electrònica y juegos de videoalexandra097
 
Electronica y juegos de video
Electronica y juegos de videoElectronica y juegos de video
Electronica y juegos de videoJuliiard
 
Escuela superior politecnica de chimborazo
Escuela superior politecnica de chimborazoEscuela superior politecnica de chimborazo
Escuela superior politecnica de chimborazokatico23
 
Las 10 mejores gaming en 2018
Las 10 mejores gaming en 2018Las 10 mejores gaming en 2018
Las 10 mejores gaming en 2018cidacabimozu
 
Gadget para jugar
Gadget para jugarGadget para jugar
Gadget para jugarITZELTOM
 

La actualidad más candente (9)

Clase03
Clase03Clase03
Clase03
 
Presentacion03
Presentacion03Presentacion03
Presentacion03
 
Electrònica y juegos de video
Electrònica y juegos de videoElectrònica y juegos de video
Electrònica y juegos de video
 
Electronica y juegos de video
Electronica y juegos de videoElectronica y juegos de video
Electronica y juegos de video
 
10gadgetsdevideojuegos
10gadgetsdevideojuegos 10gadgetsdevideojuegos
10gadgetsdevideojuegos
 
Escuela superior politecnica de chimborazo
Escuela superior politecnica de chimborazoEscuela superior politecnica de chimborazo
Escuela superior politecnica de chimborazo
 
Las 10 mejores gaming en 2018
Las 10 mejores gaming en 2018Las 10 mejores gaming en 2018
Las 10 mejores gaming en 2018
 
Gadget para jugar
Gadget para jugarGadget para jugar
Gadget para jugar
 
Canaima
CanaimaCanaima
Canaima
 

Más de Titiushko Jazz

Unidad vii esp parte 3 clase de inteligencia de negocios (datawarehouse)
Unidad vii esp parte 3 clase de inteligencia de negocios (datawarehouse)Unidad vii esp parte 3 clase de inteligencia de negocios (datawarehouse)
Unidad vii esp parte 3 clase de inteligencia de negocios (datawarehouse)Titiushko Jazz
 
Unidad vii esp parte 3 clase de datawarehouse ( ing. doño)
Unidad vii esp parte 3 clase de datawarehouse ( ing. doño)Unidad vii esp parte 3 clase de datawarehouse ( ing. doño)
Unidad vii esp parte 3 clase de datawarehouse ( ing. doño)Titiushko Jazz
 
Unidad vii esp parte 2 introduccion a data warehouse y datamining
Unidad vii esp parte 2 introduccion a data warehouse y dataminingUnidad vii esp parte 2 introduccion a data warehouse y datamining
Unidad vii esp parte 2 introduccion a data warehouse y dataminingTitiushko Jazz
 
Unidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlUnidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlTitiushko Jazz
 
Tarea pronosticos eily
Tarea pronosticos eilyTarea pronosticos eily
Tarea pronosticos eilyTitiushko Jazz
 
Proyecto teórico práctico
Proyecto teórico prácticoProyecto teórico práctico
Proyecto teórico prácticoTitiushko Jazz
 

Más de Titiushko Jazz (20)

Unidad vii esp parte 3 clase de inteligencia de negocios (datawarehouse)
Unidad vii esp parte 3 clase de inteligencia de negocios (datawarehouse)Unidad vii esp parte 3 clase de inteligencia de negocios (datawarehouse)
Unidad vii esp parte 3 clase de inteligencia de negocios (datawarehouse)
 
Unidad vii esp parte 3 clase de datawarehouse ( ing. doño)
Unidad vii esp parte 3 clase de datawarehouse ( ing. doño)Unidad vii esp parte 3 clase de datawarehouse ( ing. doño)
Unidad vii esp parte 3 clase de datawarehouse ( ing. doño)
 
Unidad vii esp parte 2 introduccion a data warehouse y datamining
Unidad vii esp parte 2 introduccion a data warehouse y dataminingUnidad vii esp parte 2 introduccion a data warehouse y datamining
Unidad vii esp parte 2 introduccion a data warehouse y datamining
 
Unidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sqlUnidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad vi esp parte 2 procesimientos en plsql y transact sql
 
Unidad ii esp parte 2
Unidad ii esp parte 2Unidad ii esp parte 2
Unidad ii esp parte 2
 
Unidad ii esp parte 1
Unidad ii esp parte 1Unidad ii esp parte 1
Unidad ii esp parte 1
 
Unidad i esp parte 2
Unidad i esp parte 2Unidad i esp parte 2
Unidad i esp parte 2
 
Unidad i esp parte 1
Unidad i esp parte 1Unidad i esp parte 1
Unidad i esp parte 1
 
Tarea pronosticos eily
Tarea pronosticos eilyTarea pronosticos eily
Tarea pronosticos eily
 
Sociedades limitadas
Sociedades limitadasSociedades limitadas
Sociedades limitadas
 
Rhu
RhuRhu
Rhu
 
Qué es un proyecto
Qué es un proyectoQué es un proyecto
Qué es un proyecto
 
Proyecto teórico práctico
Proyecto teórico prácticoProyecto teórico práctico
Proyecto teórico práctico
 
Presentacion1630
Presentacion1630Presentacion1630
Presentacion1630
 
Presentacion1410
Presentacion1410Presentacion1410
Presentacion1410
 
Presentacion1310
Presentacion1310Presentacion1310
Presentacion1310
 
Presentacion1210
Presentacion1210Presentacion1210
Presentacion1210
 
Presentacion1220
Presentacion1220Presentacion1220
Presentacion1220
 
Presentacion1001
Presentacion1001Presentacion1001
Presentacion1001
 
Presentacion810
Presentacion810Presentacion810
Presentacion810
 

Control Vibración Gamepad XNA

  • 2. Agenda  Describir como trabaja el efecto de vibración.  Mostrar como un programa XNA puede controlar la vibración de un gamepad.  Adicionar vibración a un juego.  Como poder cambiar el comportamiento de un juego modificando el codigo.
  • 3. VibracióndelgamepaddelXbox  El gamepad tiene dos motores que controlan dos ruedas.  Las ruedas giran a diferentes velocidades para hacer vibrar el gamepad.  El juego puede controlar la fuerza dada a los motores para obtener diferentes niveles de vibración
  • 4. Velocidaddevibración  El motor de la izquierda provee un sonido de baja frecuencia.  El motor de la derecha provee una vibración de alta frecuencia.  XNA permite controlar la fuerza que se les da a estos motores
  • 5. ControlarlavibracióndelgamepadenXNA  Ya se ha utilizado la clase GamePad anteriormente  Sabemos que provee el método GatState que es utilizado para leer el estado del juego.  Además provee un método llamado SetVibration, el cual es utilizado para controlar la vibración del gamepad.  El método contiene 3 parametros GamePad.SetVibration ( PlayerIndex.One, 1, 0 ) ;
  • 6. Seleccionarelgamepadacontrolar  Este valor del parámetro identifica el gamepad a ser controlado.  Se utiliza este para decirle a GetSate de que gamepad habrá que leer.  Es posible intentar controlar otros gamepads, que no están, pero el método no hará nada GamePad.SetVibration ( PlayerIndex.One, 1, 0 ) ;
  • 7. Configurarlosnivelesdevibración  Este valor del parámetro, establece la cantidad de vibración izquierda (baja frecuencia) que el motor debe producir.  El valor viene dado por un flotante entre 0 y 1  En este caso se ha establecido la máxima vibración.  Si se establece el valor de cero, la vibración se apaga. GamePad.SetVibration ( PlayerIndex.One, 1, 0 ) ;
  • 8. Establecerelniveldevibración  Este valor del parámetro la cantidad de duración en el lado derecho (frecuencia baja) que el motor debe producir.  Es un valor flotante entre cero y uno.  Trabaja de la misma manera que el valor de las izquierdas, pero el efecto de la liberación es un poco diferente.  Una vez que se ha configurado el nivel de vibración, el pad continuará vibrando hasta que se le diga algo diferente. GamePad.SetVibration ( PlayerIndex.One, 1, 0 ) ;
  • 9. Demostración. protected override void Update(GameTime gameTime) { // Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit(); GamePadState pad1 = GamePad.GetState(PlayerIndex.One); if (pad1.Buttons.X == ButtonState.Pressed) GamePad.SetVibration(PlayerIndex.One, 1, 0); base.Update(gameTime); }sus
  • 10. Detenerlavibración  El programa debe decir al gamepad que debe de tener la liberación cuando el botón no esté presionado.  Una manera fácil de alcanzar esto es adicionar un “else” a la sentencia condicional.  Esta versión del código hace que el gamepad vive cuando el botón de color azul esté presionado. if (pad1.Buttons.X == ButtonState.Pressed) GamePad.SetVibration(PlayerIndex.One, 1, 0); else GamePad.SetVibration(PlayerIndex.One, 0, 0);
  • 11. Adicionarvibraciónaljuego  El programa debe de hacer que el gamepad vibre cuando la intensidad del color rojo este por volverse cero.  La condición debe comparar 2 valores y ejecutarlo cuando uno mas grande que el otro. if (redIntensity > 220) GamePad.SetVibration(PlayerIndex.One, 1, 0); else GamePad.SetVibration(PlayerIndex.One, 0, 0);
  • 12. Combinacióndepruebas  Si queremos que la vibración comience cuando cualquier color exceda el valor de 220.  Realizamos la combinaciones respectivas if (redIntensity > 220 || greenIntensity > 220 || blueIntensity > 220) GamePad.SetVibration(PlayerIndex.One, 1, 0); else GamePad.SetVibration(PlayerIndex.One, 0, 0);
  • 13. Usandolosbloquesparamejorarla apariencia  Crear bloques es una buena manera de clarificar el código.  En este caso se separa el código de la condiciones. if (redIntensity > 220 || greenIntensity > 220 || blueIntensity > 220) { GamePad.SetVibration(PlayerIndex.One, 1, 0); } else { GamePad.SetVibration(PlayerIndex.One, 0, 0); }
  • 14. Resumen  El gamepad del Xbox tiene 2 motores de vibración para diferentes frecuencias de vibración en el gamepad.  La clase GamePad, la cual es parte del XNA provee un método llamado SetVibration el cual controla la intensidad que los motores producen.  Una vez un gamepad ha comenzado a vibrar, este seguirá hasta que se le de otra orden diferente.
  • 15. VerdaderooFalso  El Xbox 360 contiene motores de vibración.  Un programa XNA puede hacer que el teclado vibre.  Un programa XNA puede controlar solo la vibración de un gamepad.  La intensidad de la vibración de un gamepad es dada por un valor entre 0 y 1  El gamepad detiene la vibración cuando pierde el contacto con el juego.
  • 16. VerdaderooFalso  El Xbox 360 contiene motores de vibración.  Un programa XNA puede hacer que el teclado vibre.  Un programa XNA puede controlar solo la vibración de un gamepad.  La intensidad de la vibración de un gamepad es dada por un valor entre 0 y 1  El gamepad detiene la vibración cuando pierde el contacto con el juego.
  • 17. VerdaderooFalso  El Xbox 360 contiene motores de vibración.  Un programa XNA puede hacer que el teclado vibre.  Un programa XNA puede controlar solo la vibración de un gamepad.  La intensidad de la vibración de un gamepad es dada por un valor entre 0 y 1  El gamepad detiene la vibración cuando pierde el contacto con el juego.
  • 18. VerdaderooFalso  El Xbox 360 contiene motores de vibración.  Un programa XNA puede hacer que el teclado vibre.  Un programa XNA puede controlar solo la vibración de un gamepad.  La intensidad de la vibración de un gamepad es dada por un valor entre 0 y 1  El gamepad detiene la vibración cuando pierde el contacto con el juego.
  • 19. VerdaderooFalso  El Xbox 360 contiene motores de vibración.  Un programa XNA puede hacer que el teclado vibre.  Un programa XNA puede controlar solo la vibración de un gamepad.  La intensidad de la vibración de un gamepad es dada por un valor entre 0 y 1  El gamepad detiene la vibración cuando pierde el contacto con el juego.
  • 20. VerdaderooFalso  El Xbox 360 contiene motores de vibración.  Un programa XNA puede hacer que el teclado vibre.  Un programa XNA puede controlar solo la vibración de un gamepad.  La intensidad de la vibración de un gamepad es dada por un valor entre 0 y 1  El gamepad detiene la vibración cuando pierde el contacto con el juego.
  • 21.  Gracias por la atención.