Programación de Juegos para Android

Programación de Juegos para Android 13: Scene 2D

42 videos

238 minutos

Como veis he borrado todo el código que había hecho anteriormente porque ya lo tenemos visto, los conceptos elementales. Vamos a empezar a hacer nuestro clónico del Geometry Dash utilizando la librería Scene2D. Scene2D es una librería interesante que viene con libGDX que sirve para construir grafos de escena en 2D. Os preguntaréis qué es esto de un grafo de escena y por qué es importante tenerlo en cuenta. El problema de los juegos

es que normalmente controlar todo lo que tiene un juego es una operación un poco complicada porque son distintas cosas, es un framework que tenemos que controlar nosotros, y tenemos un juego, objetos que se mueven, debemos controlar cómo se están moviendo las cosas… entonces, puede ser una operación que se nos puede ir de las manos. Para facilitar a los nuevos en desarrollo de juegos libGDX incluye una librería para hacer grafos de escena llamada Scene2D.

Es cómoda porque, primero viene de serie con libGDX, así que se acabó estar buscando alternativas; segundo porque es sencillo de utilizar, en muy poco tiempo puedes mostrar cosas de forma impresionante en pantalla y animarlos y hacer todo tipo de cosas con ello; y por último porque es bastante rico, no sólo deja agregar cosas, deja escalarlo, rotarlo, incluso soporta gestión de entrada por medio de su sistema de procesadores de entrada, colisiones,

lo que deja comprobar cuando un actor del sistema ha colisionado, y te deja hacer un montón de otras cosas como si fuese una escena. De hecho creas una escena, como si fuese una obra de teatro, y agregas actores, quienes se van a colocar uno sobre otro moviendose por pantalla y haciendo lo que tenga que hacer. Podemos interactuar con ellos por medio de la entrada, disparar un comportamiento cuando lo pulsemos o cuando toquemos una tecla o cuando hagamos cualquier

tipo de interacción con ellos y agregar acciones para que se animen de una forma interesante con sólo dar una línea de código, y hacer que se muevan en línea recta o que tengan una trayectoria curiosa. Los grafos de escena, es cierto que esta imagen tiene muchos años pero sigue estando igual de válida. Los grafos de escena son esto que estáis viendo: un escenario del que van colgando distintos actores. Pueden colgar grupos, que son como

actores pero los contienen. Por dentro se comportan igual. Pueden comprobar por medio de comportamientos todo lo que tenga que ver con actores, como dibujarlos, comprobar si hemos pulsado teclas, acoplarles Listeners para procesar su entrada igual que hacemos con los InputProcessor. Es muy cómodo y conveniente para nuevos, como digo. Pero además, Scene2D tiene otra ventaja y es que soporta un sistema llamado Scene2D UI,

lo que está bien cuando hacemos interfaces gráficas, como botones en la pantalla de menú porque eso es complejo: tenemos que diseñar nuestras propias imágenes, tenemos que poner los botones ahí… si somos nuevos lo hacemos así o si no puede que conozcamos algo pero en este caso se trata de aprender. Si ya tenemos una forma de hacerlo que sea muy intuitivo de utilizar mejor que mejor. En el caso de Scene2D tenemos un paquete propio con clases de tipo

Interfaz de Usuario, lo que hace fácil en nuestro juego integrar botones, etiquetas de texto… estos botones se pueden rotar, y a pesar de que es una imagen los podéis tocar, interactúar con ellos, y se animan. Nosotros todo lo que tenemos que hacer es proporcionar las rutas a las texturas que queremos que utilicen esos botones, o las fuentes que queremos que utilicen y es muy sencillo realmente, porque todo lo demás lo hace él, y son actores que

podemos agregar al escenario como cualquier otra cosa. Si buscamos algo más sofisticado, aunque queda fuera del ámbito de este tutorial, pero si tenéis ganas está recomendado, es utilizar sistemas de control de entidades mejor hechos que Scene2D, que está bien pero mejor hecho. En particular os recomiendo Ashley, que es el que se integra mejor con libGDX, y de hecho lo podéis marcar en la pantalla de extensiones

cuando creéis vuestro proyecto, y es un ECS. Los ECS son sistemas más avanzados porque dejan organizar los elementos del juego en forma de componentes y agregar comportamientos especiales, e introducirlos en sistemas, y es muy interesante hacer un ECS por medio de Ashley porque es muy sencillo de utilizar y se integra genial con libGDX. Por el momento vamos a centrarnos en Scene2D, que nos va a dar todo lo que necesitamos todo lo que necesitamos

para nuestro juego en este momento.

Si quieres enterarte de los nuevos cursos, suscríbete. No habrá spam, prometido :)

Sobre el autor

foto de jotajotavm
José Javier Villena

jotajota pa los amigos y jota pa los de más cnfianza.

Bio Seria: Analista-Programador en diferentes lenguajes. Tutor PREMIUM de reconocidas plataformas de nivel mundial como CodigoFacilito. Redactor de artículos para Cristalab. Mi canal de YouTube está patrocinado por la editorial ANAYA y LaTostadora. Me gusta explicar con detalle y poner varios ejemplos para que no queden dudas.

Bio Molona: Me presento :) soy informatico, ni frostis d hardware pero muy muxo de programacion, friki a medias o del to segun el dia. Me gusta programar, muxo. Manejo varios lenguajes y tdo lo ke sepa lo comparto x amor al arte. Este no es mi trabjo pero lo ago mejor y con +ganas y calidad que si lo fuera, x eso mismo, xq para mi es divertido. Solo spero al menos algo de agradecimientO!! ;)

Dios, qe gusto haber escrito este parrafo cm me a dao la gana sin pensar en ortografia ni tildes ni historias!!!!!