Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Practica 2014 Lib GD X
Practica 2014 Lib GD X
Programacin de Juegos
Adicionalmente podramos ampliar la gama de mdulos con otros dos ms: Math, permite la gestin rpida de clculos matemticos orientados al desarrollo de videojuegos. Physics, que bsicamente es un wrapper (envoltorio o capa de cdigo que traduce una librera existente en otra compatible) de Box2D y permite controlar la gestin de colisiones
Realmente, estos mdulos son slo interfaces pblicas que ofrece la librera. La propia aplicacin ser la encargada de la gestin de los diferentes mdulos. 2
Programacin de Juegos
Como hemos dicho anteriormente LibGDX soporta mltiples plataformas, como los sistemas operativos de escritorio (Windows, Linux, Mac OS X), Android, iOS o el navegador (JavaScript/WebGL). Cada plataforma cuenta con diferentes mecanismos a la hora de configurar la ventana de la aplicacin, el procesamiento de la entrada del usuario, la interaccin con el sistema de archivos, reproduccin de audio y as sucesivamente. LibGDX intenta abstraer esas diferencias a travs de un conjunto de interfaces que ocultan los detalles de la plataforma. Para cada plataforma de soporte de apoyo de libGDX, hay un back-end, implementando esas interfaces. Un desarrollador de aplicaciones no se refiere a la parte Back-end directamente, sino que se desarrolla contra estas interfaces. Libgdx actualmente soporta 4 back-ends, 2 de aplicaciones de escritorio (Lwjgl, Jogl), adems de HTML5 y Android.
Programacin de Juegos
create (): Se llama una vez cuando se crea la aplicacin. Es el mtodo que se ejecuta cuando se crea la actividad, el mtodo donde debemos cargar las imgenes, sonidos y msicas en memoria para poder usarlas. resize(int width, int height): Se llama a este mtodo cada vez que la pantalla del juego cambia su tamao y el juego no est en el estado de pausa. Tambin se le llama slo una vez justo despus del mtodo create (). Los parmetros son la nueva anchura y altura de la pantalla. render (): Mtodo cclico (se ejecuta continuamente) llamado por el bucle del juego de la aplicacin cada vez que se renderiza. La actualizacin del juego tambin tiene lugar aqu antes de la representacin real. En este mtodo ser donde vamos a ir dibujando las imgenes y acciones. pause (): El mtodo de pausa se llama justo antes que se destruya la aplicacin. En Android se llama cuando el botn de inicio se presiona o haya una llamada entrante. En el escritorio se llama justo antes de dispose () al salir de la aplicacin. Es un buen lugar para guardar el estado del juego en Android, ya que no se garantiza que sea reanudado. resume (): Este mtodo es llamado slo en Android, cuando la aplicacin recibe el foco al volver al juego desde el mtodo pause(). En el escritorio este mtodo no ser llamado nunca. dispose (): Se le llama cuando la aplicacin se destruye. Es precedido por una pausa (). Es el contrario al mtodo create () y en l se suele liberar el espacio de memoria que hemos usado en el mtodo create
Los mtodos anteriores son provocados por la aplicacin durante su ciclo de vida.
Programacin de Juegos
El siguiente diagrama muestra las diferentes fases por las que pasa una aplicacin libGDX:
Objetivo
Como comentamos al inicio, el objetivo de la prctica es programar en Java un sencillo videojuego en 2D para dispositivos mviles Android, haciendo uso del framework libGDX. Plantearemos un modelo estndar tipo MVC para el funcionamiento bsico que puede utilizarse en otros juegos. El Modelo Vista Controlador (MVC) es un patrn de arquitectura de software que separa los datos y la lgica de negocio de una aplicacin de la interfaz de usuario y el mdulo encargado de gestionar los eventos y las comunicaciones. Para ello MVC propone la construccin de tres componentes distintos que son el modelo, la vista y el controlador, es decir, por un lado define componentes para la representacin de la informacin, y por otro lado para la interaccin del usuario. Este patrn de diseo se basa en las ideas de reutilizacin de cdigo y la separacin de conceptos, caractersticas que buscan facilitar la tarea de desarrollo de aplicaciones y su posterior mantenimiento.
Programacin de Juegos
Capa Game Colocaremos las clases que arrancan el juego como la clase que tiene el mtodo main(). Esta capa se encarga de llamar e inicializar los objetos Screens del juego. Es responsable de cargar los recursos en memoria como la msica o las imgenes.
Capa Screen Se encarga de dibujar la pantalla, el mtodo ms usado es render() que es el mtodo que dibuja la pantalla y el mtodo dispose() que es usado para eliminar los objetos que no se utilicen. Por ejemplo cuando cambiamos de una pantalla (screen) a otra. En este ejemplo hemos creado dos screens, la screen del menu principal y la screen del juego en s mismo. Estas clases implementan la interfaz Screen.
Programacin de Juegos
Capa Model Se utilizar para el modelo de lgica del juego, no puede faltar la clase World, que es el que se encarga de inicializar los otros objetos del mundo de este juego. Si por ejemplo el juego a implementar estuviera formado por un escenario que contiene bolas que pueden moverse y colisionar con ladrillos o barras, tendramos 2 clases ms, la Clase Ball y la Clase Bar (el objetivo del juego podra ser por ejemplo obtener el mximo nmero de puntos en el tiempo disponible, en caso de que las bolas puntuaran al colisionar con las barras, o por ejemplo, durar el mayor tiempo posible sin colisionar).
Todas las clases asociadas al problema sern programadas siguiendo una filosofa modular, creando los paquetes anteriormente mencionados (com.libgdx.game, com.libgdx.screen, com.libgdx.model) con todas las clases a utilizar (Game, Assets, MainMenuScreen,...).
Evaluacin
En la nota de la prctica se tendr en cuenta tanto el proyecto de programacin como el resultado de la entrevista y la defensa de las prcticas. Tras la entrevista de prcticas, si la prctica est aprobada, se dar opcin a mejorar la nota de la prctica corrigiendo los errores. Las prcticas que no implementen TODA la funcionalidad requerida no sern evaluadas. La copia de prcticas, aun siendo parcial, ser sancionada con el suspenso de las prcticas tanto para el grupo que copia como para el que deja copiar. Cada grupo es responsable de la custodia de sus prcticas.
Programacin de Juegos
Entrega de prcticas
La prctica ser realizada en grupos de tres alumnos como mximo y ser desarrollada en una entrega. Una vez finalizada la prctica se realizar la entrevista de revisin y la defensa de prcticas. El plazo de entrega de la prctica finaliza el mircoles 23 de abril de 2014. La entrega de prcticas se realizar en moodle. El representante del grupo debe subir el proyecto de programacin (slo el proyecto y no el espacio de trabajo completo de Eclipse) en un fichero comprimido .zip o .rar (no olviden indicar los nombres de los integrantes del grupo).