¡Tenemos editor de animaciones!
Sin dudas una de las tareas más importantes de este sprint fue la creación del editor de animaciones.
Ahora tenemos la posibilidad de crear animaciones directamente desde el editor de manera muy sencilla:
Añadí un botón para ver, crear y editar animaciones justo en la parte superior de la pantalla:
Y una vez que se comienza a realizar la animación, la interfaz muestra el nombre, la velocidad y cada uno de los cuadros de animación:
También grabé un video mostrando cómo usar el editor con un ejemplo más complejo:
Mejorando los paneles colapsables
Ahora los paneles se pueden plegar de manera más intuitiva, añadí un texto para indicar el nombre del panel, un ícono de plegado e hice que los paneles no se oculten por completo, sino que queden plegados al borde de la pantalla:
Agregando modo de dibujo en baja calidad
Añadí una opción para dibujar la escena del juego en baja calidad, esto hace que el área de juego de pilas se muestre evitando suavizado de píxeles y haciendo que la simulación funcione mucho más rápido en equipos antiguos:
Ten en cuenta que las diferencias de estos dos modos solo se perciben cuando se maximiza el área de juego o se reduce mucho su tamaño. En la mayoría de los casos, el área de juego se muestra en una escala 1:1, así que no se ve la diferencia.
Por el momento dejé activado el modo baja calidad por omisión para quienes no lo configuren, aunque no tengo claro si es la mejor opción. Noté que en equipos sin aceleración de video el modo baja calidad es mucho mejor, ya que alcanza los 60FPS en lugar de 40/45 FPS. Sin embargo, en equipos con aceleración de video no se ve diferencia de rendimiento, y hasta pareciera que el modo de baja calidad pierde algunos FPS.
Así que voy a hacer algunas pruebas más para elegir el modo más útil para la mayoría de los usuarios en la próxima versión.
Acá dejo una comparativa de los dos modos cuando se usa pantalla completa:
Mejorando captura de errores
Modifiqué la forma en la que se capturan errores dentro del editor, noté que había algunas partes del editor que podían ejecutar código de los juegos sin evaluar si podían fallar o no, y eso hacía que el editor quede “colgado” e impidiendo poder volver a ejecutar el juego.
Mejorar la función “obtener_actor_por_nombre”
Cambié la implementación de la función “obtener_actor_por_nombre” para que falle en caso de que se le indique el nombre de un actor inexistente en el proyecto.
Este cambio nos va a ser de mucha utilidad para mostrar un mensaje de error claro al respecto, cosa que no podíamos hacer antes cuando la función simplemente retornaba null
en caso de no encontrar el actor.
Creando ejemplos nuevos
Incorporé un ejemplo que muestra cómo crear dos tipos de proyectiles con diferentes recorridos:
y además añadí un ejemplo sobre temporizadores.
Mejorando scripts para exportar juegos
Hice que el exportador de pilas incluya bibliotecas y varios archivos .bat para simplificar la creación de versiones Portables (en formato .exe) para windows.
Evitando que los diálogos de textos salgan de la pantalla
Corregí un detalle que detectamos hace poco, cuando le indicábamos a un actor que pronunciara un texto a veces se salía de la pantalla.
Con este arreglo, ahora el globo que incluye el texto se acomoda para quedar siempre visible en caso de que el actor esté muy al borde de la pantalla:
Otras mejoras
Hubo varias mejoras pequeñas que no detallé, pero que sin dudas ayudan a que la herramienta funcione mejor, como la creación de los métodos “olvidar” para quitarle habilidades a un actor, reparar las animaciones del actor Ceferino, crear el actor “botón activable” y varias cosas más.
Podes ver la lista completa de cambios directamente en github
Para el próximo Sprint
Estuve haciendo un listado de mini-juegos que me gustaría hacer con pilas, como mínimo quiero crear algunos juegos clásicos y sencillos para mostrar lo que ya puede hacer la herramienta.
Tenía previsto sumar más ejemplos en este sprint, pero el editor de animaciones me demandó más tiempo del que esperaba… así que para este próximo sprint no hay excusas, ¡Se vienen más juegos!