OUYA Android Para Consolas Jesús Luis Muros Cobos Manuel José Baena Toquero Indice
Total Page:16
File Type:pdf, Size:1020Kb
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; óresolucin 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<Tablero.rowPositions) 5 posSelected=new Pair<Integer,Integer> (posSelected.first+1, posSelected.second); 6 handled= true; 7 break; 8 case OuyaController.BUTTON_DPAD_UP: 9 if(posSelected.first-1>=0) 10 posSelected=new Pair<Integer,Integer> (posSelected.first-1, posSelected.second); 11 handled = true; 12 break; 13 case OuyaController.BUTTON_DPAD_LEFT: 14 if(posSelected.second-1>=0) 15 posSelected =new Pair <Integer,Integer > ( posSelected.first , posSelected.second -1); 16 handled = true; 17 break; 18 case OuyaController.BUTTON_DPAD_RIGHT: 19 if(posSelected.second+1<Tablero.rowPositions) 20 posSelected=new Pair<Integer,Integer> (posSelected.first, posSelected.second+1); 21 handled = true; 22 break; 23 case OuyaController.BUTTON_O: 24 tryMove(posSelected); 25 handled = true; 26 break; 27 case OuyaController.BUTTON_Y: 28 surrender(); 29 handled = true; 30 break; 31 } Página ° 23 32 ¿Estoy ejecutando el código en una OUYA? 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.