Hora del código #23
He vuelto a posponer lo del diseño del primer nivel pero ni modo, al menos logré hacer otras cosas. Agregué un menú inicial que da el nombre del juego, una introducción al mismo y el listado de controles. Durante el juego hay que pulsar la tecla Escape para mostrar el menú de los controles y pausar el juego.
También incluí una parte para traducir los textos del juego. Es algo bastante sencillo, básicamente funciona escribiendo las cadenas de texto en un archivo separado por comas, un CSV. Luego al agregarlo a Godot hay que re importarlo para que genere las cadenas de traducción y éstas agregarlas a la configuración del proyecto. Cuando se ha hecho esto es cuestión de usar las mismas claves o índices de cada fila en alguna etiqueta o botón para que seleccione directamente la cadena de texto correspondiente. Cuando se quiere cambiar de idioma hay que usar la clase TranslationServer y el método set_locale para la traducción que se quiera utilizar. Esto incluso funciona para “traducir” los recursos como imágenes y audio. Lo que se hace es designar otros archivos para usar cuando se cambia de idioma, por ejemplo en este juego al cambiar a Inglés la imagen de Salida se reemplaza por la de Exit. Al actualizar el CSV con nuevas cadenas o modificaciones sólo hay que agregar el archivo a Godot como al principio y generará los archivos de traducción de forma automática.
Algo que no había planificado y que lo hice por impulso fue agregar soporte para usar un control o gamepad o mando o como se le llame. En el menú principal está la opción para alternar entre teclado y mouse o control. Es increíble esto de Godot ya que trae toda la estructura para hacer rápidamente este tipo de integraciones. Yo con los controles no soy muy bueno, ahí se puede ver en el vídeo que no pego ni una. De hecho este es un viejo control Genius MaxFire Grandias 12V que tenía por acá de no sé hace cuántos años y aunque es de mala calidad aún funciona. En la casa tengo un Logitech pero la última vez que lo usé fue hace algún tiempo para jugar a Dragon’s Dogma Dark Arisen en la computadora, dicho juego nunca lo he terminado. Parece que me van a faltar botones porque de momento tengo las armas en los del 1 al 4 osea ABXY en Xbox porque de casualidad son 4 pero también necesito el primer botón (o alguno ellos) para interactuar con los interruptores y las puertas. También podría implementar una funcionalidad para reasignar teclas de ambos controles y qué el jugador vea qué le conviene. Vamos a ver cómo evoluciona esto.