OUYA Android para consolas Jesús Luis Muros Cobos Manuel José Baena Toquero Indice
° Videojuegos y Android ° OUYA ° Comenzando el desarrollo ° Ejemplos con ECLIPSE ° Motores para el desarrollo con OUYA ° Ejemplos con Unity
Página ° 2 Videojuegos y Android
Página ° 3 Videojuegos y Android
Página ° 4 Videojuegos y Android
Página ° 5 Videojuegos y Android
Nvidia Shield Project MOJO Archos Gamepad 2
ZTE FUN BOX Game Stick eSfere
Página ° 6 OUYA
Página ° 7 OUYA
System on a Chip Nvidia Tegra 3 T33-P-A3
Quad-core 1.7 GHz ARM Cortex-A9 MPCore (arquitectura ARMv7-A)con CPU extensiones NEON Advanced SIMD y unidad de punto flotante VFPv3
Nvidia GeForce ULP @ 520 MHz (12.48 GFLOPS)1080p por GPU Hardware MPEG-4 AVC/h.264 40 Mbit/s High-Profile, VC1-AP, y decodificación de video DivX 5/6
Memoria RAM 1 GiB DDR3-1600 SDRAM (compartidos para CPU y GPU)
Entrada USB 1 USB 2.0, 1 microUSB HDMI 1.4; resolución de 1080p o 720p. soporte para Stereoscopic Salida de Video: 3D.
Salidas de Audio: HDMI (ARC), 5.1 or 2.0 canals
Almacenamiento: Memoria flash de 8 GB eMMC
Conectividad: 10/100 Ethernet (8P8C),WiFi 802.11 b/g/n, Bluetooth LE 4.0
Consumo de energía: 4.5 watt, 1 watt (standby)
Alimentación 12 volt DC via conector coaxial (OD 5.50 mm, ID 2.50 mm, center eléctrica: positive)
Tamaño: 75×75×82 mm ( 2.95×2.95×3.23 i n) Peso: 300 g (10,582383858337 oz)
Sistema Operativo: Android 4.1 (Jellybean) con un launcher personalizado de Ouya.
Página ° 8 OUYA
788 Juegos y contando…
Página ° 9 Comenzando el desarrollo
°¿Qué necesitamos?
ADT + NDK ODK
Página ° 10 Configurar ADT
Página ° 11 ODK
°Ouya Developer Kit puede descargarse de: https://gamers.ouya.tv/developers/odk °Requiere registro gratuito.
Página ° 12 Página ° 13 Configurar nuestra OUYA
Página ° 14 Configurar nuestra OUYA (II)
• Tras esto conectamos usando adb
Página ° 15 ¡No tengo una OUYA!
°Usa un emulador – Resolución: 1920x1080 – Botones hardware (Back y Home) – Soporte para D-PAD – Nivel de API 16 – Dispositivo a emular: Intel Atom x86 – RAM: 1GB
Página ° 16 Vamos a programar
Página ° 17 Usando la biblioteca de OUYA
°Para trabajar con las funciones de OUYA es necesario incluir el jar que se encuentra en el ODK.
Página ° 18 Primer ejemplo @Override 1 public boolean onKeyDown(final int keyCode, KeyEvent event){ 2 // Nos indica el número de jugador que pulsó el botón 3 int player = OuyaController.getPlayerNumByDeviceId(event.getDeviceId()); 4 // Booleano para controlar la pulsación de los botones 5 boolean handled = false; 6 7 // Manejamos la entrada dependiendo del código del botón con el que se realizó la 8 pulsación 9 switch(keyCode){ 10 // Comprobamos si se trata del botón O 11 case OuyaController.BUTTON_O: 12 // Aquí gestionaremos la pulsación del botón O 13 handled = true; 14 break; 15 case OuyaController.BUTTON_DPAD_LEFT: 16 // Aquí gestionaremos la pulsación del botón izquierda de la cruceta 17 handled = true; 18 break; 19 } 20 return handled || super.onKeyDown(keyCode, event); 21 } Página ° 19 Ejemplos con Eclipse 1 @Override 2 public boolean onGenericMotionEvent(final MotionEvent event) { 3 //Obtiene el número de jugador 4 int player = OuyaController.getPlayerNumByDeviceId(event.getDeviceId()); 5 6 //Tomamos los valores del joystick izquierdo 7 // Valor en el eje X del joystick 8 float LS_X = event.getAxisValue(OuyaController.AXIS_LS_X); 9 // Valor en el eje Y del joystick 10 float LS_Y = event.getAxisValue(OuyaController.AXIS_LS_Y); 11 12 // Ajustamos la salida para los valores X e Y del joystick izquierdo 13 tv_joyLeft.setText("X: " + LS_X + " Y: " + LS_Y); 14 15 // Tomamos los valores del joystick derecho 16 // Valor en el eje X 17 float RS_X = event.getAxisValue(OuyaController.AXIS_RS_X); 18 // Valor en el eje Y 19 float RS_Y = event.getAxisValue(OuyaController.AXIS_RS_Y); 20 // Ajustamos la salida para los valores X e Y del joystick derecho 21 tv_joyRight.setText("X: " + RS_X + " Y: " + RS_Y); 22 23 return true; 24 }
Página ° 20 Mis juegos están Google Play https://play.google.com/store/apps/details?id=com.mu rosapps.damas
Página ° 21 Y en OUYA también
Página ° 22 1 Adaptación 2 switch (move) { 3 case OuyaController.BUTTON_DPAD_DOWN: 4 if(posSelected.first+1
1 if (Build.MODEL.contains("OUYA")){ 2 b.setVisibility(View.GONE); 3 ((TextView)findViewById(R.id.TextSurrender)).setVisibility(View.VISIBLE); 4 }
Página ° 24 ¿Puedo usar un motor gráfico?
Los motores gráficos actuales nos pueden ayudar a desarrollar mejores juegos en menos tiempo.
Página ° 25 Motores para el desarrollo con OUYA
Página ° 26 Motores para el desarrollo con OUYA
Página ° 27 Ejemplos con Unity
Código para PC y OUYA disponible en core.ugr.es/beyondandroid
Página ° 28 Gracias por su atención ¿Alguna pregunta?
Página ° 29