Guardar, Cargar y Puntuaciones Altas
A menudo quieres crear un juego en el que recuerde ciertos detalles sobre la última vez que se jugó.
Lo que deseas guardar depende en gran medida del juego o la aplicación que estés creando. Ya sea que desees guardar una puntuación, la posición o el progreso general, necesitas planear cómo y qué es lo que deseas guardar.
En este tutorial cubriremos cómo guardar la puntuación de un jugador y crear un sistema simple de puntuaciones altas o puntuación de "Mejor Anterior".
Para este tutorial, asumiremos que has creado un juego simple donde el jugador recoge monedas (Parte 5 de Creando un Juego de Plataforma), y el número de monedas se muestra con una etiqueta en la pantalla.
Guardar
Cuando se trata de guardar, hay dos preguntas importantes que debes hacerte. ¿Qué quieres guardar y cuándo deberías guardar? En hyperPad, el Comportamiento de Guardado solo puede guardar un valor a la vez. Así que realmente necesitas pensar sobre lo que estás guardando.
En este tutorial, guardaremos la puntuación (número de monedas recolectadas) que se muestra usando una etiqueta en la pantalla.
Ahora que sabemos que estamos guardando la puntuación de la etiqueta, la siguiente cosa que debemos averiguar es cuándo guardar.
Hay muchas opciones aquí y dependen de tu jugabilidad o diseño general. Puedes tenerlo guardado cada vez que el jugador recoge la moneda, guardar cuando el jugador pierde, guardar cuando el jugador completa el nivel, guardar cuando el jugador presiona un botón, o lo que sea que creas que es necesario para tu situación.
Para este tutorial, configuraremos un botón que guarda la puntuación cuando el jugador presiona el botón de guardar. Esta misma lógica de comportamiento puede aplicarse si deseas guardar cuando el jugador pierde o termina el nivel. Solo necesitas activar estos comportamientos cuando ganas o pierdes.
Selecciona tu objeto Botón de Guardado y abre los comportamientos.
Desde la categoría de Interacción en el editor de comportamientos, agrega un comportamiento de "Toque Detenido".
Ahora, desde la categoría de UI, agrega un comportamiento de "Obtener Etiqueta" y conéctalo al comportamiento de "Toque Detenido" del paso anterior.
Toca el comportamiento de "Obtener Etiqueta" para ver las propiedades del comportamiento. Desde las propiedades del comportamiento, toca el área que representa el objeto actual y luego selecciona la etiqueta en tu escena que representa tu puntuación.
A continuación, desde la categoría de Personalizado, agrega un comportamiento de "Guardar en Archivo" y conéctalo a "Toque Detenido".
Selecciona el comportamiento de "Guardar en Archivo" que acabas de agregar para ver las propiedades del comportamiento. Nota que el "Tipo de Clave" está configurado en existente. Las claves existentes son cosas predefinidas que deseas guardar.
Primero necesitas agregar el título o descripción de algo que deseas guardar. Esto se llama una "Clave". Toca el botón "Seleccionar o Crear Clave" para abrir la lista de claves.
Ingresa un título descriptivo en la parte superior, y luego presiona el botón + para agregar tu primera clave. Dado que queremos guardar la puntuación, ingresa "Puntuación" como la clave.
A continuación, necesitas guardar realmente la puntuación de la etiqueta. Para hacer esto, saca el valor de la esquina del comportamiento "Obtener Etiqueta" en el campo de entrada de las propiedades de "Guardar en Archivo".
¡Eso es todo! En este punto, tu juego debería estar guardando tu puntuación justo cuando presionas el botón de guardar. Pero todavía no has hecho nada con el valor guardado. La siguiente cosa que necesitas hacer es cargar la puntuación y realmente usarla en tu escena.
Cargar
Con tu puntuación guardada, ahora necesitas cargarla y usarla en tu escena. Cuando se trata de cargar, hay una pregunta importante que debes responder. ¿Cuándo deseas cargar?
Al igual que con el guardado, la respuesta depende en gran medida de tu proyecto. Puedes cargar tan pronto como tu escena comience, cuando el jugador presione un botón, o cuando se desencadene algún otro evento. Realmente depende de lo que estás tratando de lograr.
Para este tutorial, cargaremos justo cuando la escena comienza y mostraremos la puntuación guardada anteriormente.
Para comenzar, agrega una etiqueta en tu escena. Usaremos esta etiqueta para mostrar tu puntuación guardada.
A continuación, necesitamos agregar la lógica real de carga. Para este tutorial, agregaremos la lógica al Botón de Guardado de los pasos anteriores. Sin embargo, dependiendo de tu juego, es posible que necesites colocar tu lógica en otro lugar. Selecciona el botón de guardar y abre el editor de comportamiento desde las propiedades del objeto.
Desde la categoría de Personalizado, agrega el comportamiento "Cargar desde Archivo" y no lo conectes a nada. Dado que no está conectado a ningún otro comportamiento, el comportamiento de carga se ejecutará justo cuando la escena comience (cuando el botón existe en la escena). Si deseas cargar basándote en un evento específico, o en otro desencadenador, entonces lo conectarías a otros comportamientos.
Ahora selecciona el comportamiento "Cargar desde Archivo" para ver las propiedades del comportamiento. Una vez más, asegúrate de que "Existente" esté seleccionado para el tipo de clave.
A continuación, toca el botón "Seleccionar Clave" para abrir la lista de claves guardadas. De la lista, elige la clave "Puntuación" que agregaste anteriormente.
En este punto, técnicamente has cargado la puntuación. Pero todavía no estás haciendo nada con ella. Vamos a darle uso a ese valor cargado.
Desde la categoría de UI, agrega un comportamiento de "Establecer Etiqueta" y conéctalo al comportamiento de Carga que agregaste anteriormente.
A continuación, selecciona el comportamiento de "Establecer Etiqueta" para ver sus propiedades y recuerda elegir la nueva etiqueta que acabas de agregar, que representa la puntuación cargada. Una vez que hayas seleccionado la etiqueta correcta para cambiar, arrastra el valor de salida desde la esquina del comportamiento "Cargar desde Archivo" al campo de entrada del comportamiento "Establecer Etiqueta".
Puntuación Alta
Una cosa que puede que hayas notado es que tu puntuación se guarda cada vez que presionas el botón y sobreescribe tu puntuación anterior. A veces esto está bien, pero generalmente solo deseas guardar cuando el jugador alcanza una puntuación mayor que la anterior.
Para implementar este sistema de "Puntuación Alta" solo necesitamos modificar ligeramente nuestra lógica de guardado.
Comienza volviendo a donde están colocados los comportamientos de guardado (el botón de guardado).
Primero necesitas desconectar el comportamiento "Guardar en Archivo" de tu comportamiento "Toque Detenido". Toca la línea que conecta los dos comportamientos para desconectarlos.
A continuación, desde la categoría de Lógica, agrega un comportamiento SI. El comportamiento SI verificará cuándo se cumple una cierta condición antes de ejecutarse. En este caso, solo queremos guardar SI la puntuación es mayor que la puntuación anterior (cargada).
Conecta el comportamiento SI al comportamiento "Toque Detenido".
A continuación, debes tocar el comportamiento SI para abrir las propiedades del comportamiento y configurar la condición.
Arrastra el valor de salida de "Obtener Etiqueta" al primer campo de entrada del comportamiento SI.
Luego arrastra el valor de salida del comportamiento "Cargar desde Archivo" al segundo campo de entrada del comportamiento SI.
Ahora debes cambiar la condición. Toca el botón "Es Igual A" y selecciona la opción Mayor que o Igual a (≥).
Finalmente, conecta tu viejo comportamiento de guardado al SI. Ahora tu comportamiento SI solo ejecutará el guardado conectado, SI el valor de la etiqueta es mayor que (o igual) al valor cargado.
Eso es todo lo que necesitas hacer. Ahora deberías tener un sistema de guardado y carga que guardará la puntuación del jugador solo si superan su intento anterior.
Otro Guardado
Este tutorial cubrió cómo guardar una puntuación. Pero a veces deseas guardar otras cosas, como la posición de un jugador, o el nivel actual, etc.
Los conceptos que aprendiste en este tutorial aún se aplican. Solo necesitas cambiar cuándo estás guardando y qué es lo que estás guardando.
Toma como ejemplo guardar la posición del jugador. La posición de un objeto se da en 2 números. El X y el Y. Para esto, simplemente usarías 2 comportamientos de guardado. Uno para guardar la posición X, y el otro para guardar la posición Y. Luego, cuando se trata de cargar, usarías 2 comportamientos de carga. Luego, en lugar de establecer una etiqueta, simplemente moverías el objeto del jugador a las posiciones X e Y cargadas.
Hacer un plan sobre lo que estás tratando de guardar y cuándo necesitas guardar, puedes crear un sistema que funcione para casi cualquier situación.

