Preparando las herramientas para la batalla.

Hacer un videojuego es iterar muchas cosas. Tienes que ir cambiando muchas cosas y comprobando como quedan. Por ejemplo, moldear los parámetros de un enemigo hasta que su dificultad suponga un reto equilibrado, que se supone que sigue esta ruta:
Cambiar parámetros en código - compilar - iniciar juego y probar. Repetir proceso hasta que te guste el resultado. Puedes currártelo un poco más y cambiar dichos valores en tiempo real, mediante un par de teclas extra o incluso currarte un editor de monstruos ingame. También en modificar un nivel, puedes perder mucho tiempo, en modificar la altura con la que salta el personaje...
Por otro lado dibujar los personajes, unirlos todos en un spritesheet, como el de la siguiente imagen, ya que el proceso de cargar las texturas en la CPU es muy costoso, se colocan todas las imágenes en único archivo.

Sacado de aquí.

Supón que quieres añadir mas "frames" a la animación, o modificar el color del personaje para verlo como queda con el color del fondo del nivel nuevo. Pues seria más modificaciones en todos los frames, después toca unirlos, luego saber en el código que porción de gráfico pertenece a cada frame...

Por eso, dado que el mundo de la informática se ideo para automatizar tareas, lo que viene ahora es automatizar todo esto, para no perder 30 segundos en cualquier mínimo cambio a los sprites o al añadir nuevos. Pequeños cambios que me ahorran la vida:

PyxelEdit me permite modificar las animaciones a mi antojo, incluso hacer modificaciones en todas a la vez (ojo con esto), añadir, quitar, copiar frames fácilmente, ver el cambio en tiempo real (preview) sin necesidad de exportarlo al motor del juego, y luego me permite exportar cada frame en un archivo diferente (útil para luego incorporar varias animaciones en un mismo spritesheet) y además en un formato que el motor libgdx sabe distinguir entre que es un animación, y que es una imagen fija.

TexturePacker (https://github.com/libgdx/libgdx/wiki/Texture-packer) Una herramienta disponible, en GUI independiente, por consola y en clases de java.
La he incorporado en java, para que se ejecute cada vez que pruebe la app.
Te permite empaquetar todas las imágenes de un directorio en un único archivo (spritesheet) preparado para que Libgdx lo lea sin problemas.

Ni que decir tiene que estas dos herramientas me ahorran mucho tiempo a la larga, sino también tener que picar mucho código extra.

Imagen de la cabecera.

josemwarrior

Read more posts by this author.

Subscribe to @josemwarrior

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!