28/2/14

[Tutorial] Stage (libGDX)

Buenas gente!

En esta entrada vamos a ver con un poco más de detalle la clase Stage. Esta clase incluye una cámara y un SpriteBatch. Además, guarda los distintos actores que le demos para luego actualizarlos y mostrarlos por pantalla.

También veremos algunos ejemplos de actores que se le pueden incorporar.

Inicialización y uso :

Puedes crear un Stage con los siguientes constructores según tu necesitad:

Puedes asignarle a tu stage los eventos que se produzcan en la aplicación con la línea:


Para cambiar las dimensiones de lo que muestra tu stage puedes hacerlo con la línea:

Puedes añadir actores a tu stage con la línea;

Para actualizar a todos los actores de tu stage, se utiliza la siguiente línea (delta es un flotante que indica la cantidad de tiempo que ha transcurrido desde el último renderizado):

Y para dibujarlos a todos (dibujará los actores en el orden en el que tu los introdujiste en el stage)

Actores:


Un actor es un nodo con posición, tamaño, escala, rotación, color, etc. La clase Actor es extendida para crear nuestros propios actores que pueden cambiar a lo largo del tiempo y que deben ser mostrados en la pantalla de nuestra aplicación.

Un actor tiene una serie de eventos asociados a él que se ejecutan a lo largo del tiempo y son usados para modificarlo (como puede ser moverlo, redimensionarlo, cambiar su animación, etc.).

Estos son algunos de los posibles actores que se pueden añadir a nuestro stage, pudiendo crearte los tuyos propios:
  • Table → Base para añadir botones, imágenes, etc. y colocarlos de forma ordenada en la pantalla, pudiendo indicar su tamaño, espaciado entre el resto de elementos, etc.
  • Image → Imágenes sacadas a partir de una textura o región de esta.
  • Button → Botones con cualquier acción que tu les indiques.
  • Entidades → Un actor con animaciones, detección de colisiones, vida y todos los atributos que quieras darle.
  • Barras de vida, stamina, etc.  Varias imágenes superpuestas que varían según eventos de tu aplicación como la pérdida de vida de tu personaje, uso de ataques, etc.
  • Controladores táctiles Para mover otros actores o cámaras, modificar valores, zoom, etc.


Notas:


  • Al finalizar la aplicación deberemos llamar al método dispose() de nuestro stage para eliminarlo.
  • Los actores por defecto no necesitan tener un método dispose(). Si creamos nuestra propia clase que extienda de Actor y esta tiene variables que necesiten usar dispose() al cerrarse si deberemos crear esta función y llamarla al cerrar nuestra app.
  • Los actores se mostrarán en pantalla en el orden en el que se introdujeron en el stage, por lo que en el fondo se encontrarán los primeros y se irán superponiendo si fuera necesario hasta llegar al último introducido que estará sobre todos.
  • Es posible tener más de un stage, cada uno con sus actores y que se muestren simultáneamente en pantalla. Esto será útil cuando veamos más adelante el HUD.
  • Es recomendable usar siempre el mismo SpriteBatch, para el stage o para dibujar elementos concretos. Esto mejorará el rendimiento de nuestra app.

Referencias:

No hay comentarios:

Publicar un comentario