Juego de rol 2D 75: información debug

A la hora de desarrollar un juego, es normal que la creciente cantidad de información y procesos acabe haciendo francamente difícil encontrar y corregir los errores existentes. Por eso resulta útil tener una clase debug que nos muestre en pantalla el estado de diversas variables críticas del juego en tiempo real. Aunque es posible lograr esto a través del propio IDE, hacerlo así nos da la ventaja de personalizar la información, ver sólo lo que queramos y nos ayudará a controlar mejor la aplicación.

Actualmente, el juego ya muestra algunos datos en pantalla, pero de forma muy desordenada y caótica. En este caso, lo que haremos es ordenar todo. Crearemos una clase (DebugInfo) que tendrá un ArrayList de String. Crearemos un método estático que permita guardar en cualquier momento dado un String en el ArrayList.

De esta forma, en cada objeto del que queramos extraer información, ejecutaremos el método e iremos guardando en el ArrayList la información deseada. Al final, cuando todos los objetos hayan hecho su parte de actualización o dibujo, dibujaremos en pantalla la información acumulada.

Para que esto funcione de forma correcta, es importante que después de dibujar la información la borremos (método clear() del ArrayList). De esta forma, la información se irá sustituyendo en vez de acumularse.

También necesitaremos un método de dibujo para nuestra clase debug, de forma que la información se dibuje de forma ordenada en filas de la misma altura.

Por último, también resulta conveniente encender algún botón debug que nos permita mostrar u ocultar la información debug de la pantalla. De esta forma ahorraremos esfuerzo a nuestro ordenador y no recargaremos la pantalla de datos innecesarios (sólo encenderemos el debug cuando queramos averiguar algún dato).

Es una buena forma de ordenar el proyecto y el código, ya que anteriormente los diferentes datos se dibujaban con diferentes márgenes, colores y espacios. Ahora todo queda más uniforme y agradable.

¿Te ha gustado? ¡Colabora en Patreon!

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *