pilas-engine

Alguna manera de guardar una partida o resultados

Estimados, conocen alguna manera guardar, o salvar los resultados.

Hola @compulaseradmr, en pilas se puede usar localStorage para guardar y recuperar datos. Te paso un video donde se explica con algunos ejemplos:

Abrazo!

@compulaseradmr quiero agregar a lo dicho por hugoruscitti que en los ejemplos, en particular en el de ‚Äúmejor puntaje‚ÄĚ al inspeccionar el c√≥digo te dice como puedes activar lo de local storage a trav√©s de unos comandos.
De ahí se puede sacar la manera de guardar el valor de variables, también lo probé haciendo el .exe del ejemplo y funciona

1 Like

Mil gracias, por tu ayuda. En el video escuche algo sobre cookies, me interesaría ese tema ya que necesito guardar valores de variables de un ejercicio echo en pilas, si fuese posible en un archivo plano.txt o archivo .ini o similares para leer este contenido desde php y guardarlo en MySQL(php y Mysql lo domino muy bien),
Estoy recién iniciándome en pilas?

Hola @compulaseradmr, localStorage me parece lo mejor, es m√°s sencillo de utilizar me parece. Sin embargo, si queres usar php, mysql o archivos, deber√≠as tener una aplicaci√≥n php corriendo en un servidor web, y exponiendo una api a la que le puedas enviar datos. Del lado de pilas, tendr√≠as que usar una funci√≥n como ‚Äúfetch‚ÄĚ (https://developer.mozilla.org/es/docs/Web/API/Fetch_API/Utilizando_Fetch) para recibir los puntajes o enviarlos.

¬°Abrazo!

hola amigo me podrías decir como trabajo con local storage ya que no reconoce los comandos

Hola @Incognito_Dev!!, para trabajar con localstorage necesitas usar dos funciones:

localStorage.setItem("variable", valor_a_guardar)
localStorage.getItem("variable", valor_por_omision)

El editor de pilas te va a marcar que las funciones no existen, pero en realidad el código va a funcionar bien. El editor te va a mostrar la llamada a la función así:

Por el momento no te preocupes, el código va a funcionar bien de todas formas, voy a arreglar este problema del editor en la próxima versión.

Te paso un mini ejemplo que armé recién. En este ejemplo el usuario puede hacer click en las monedas para incrementar el contador de puntaje.

Abrir este proyecto en el editor de pilas

Lo interesante, es que una vez que el jugador reinicia el juego, el puntaje queda guardado y puede volver a jugar a partir de donde se quedó.

Vas a notar que incluso si reinicias el navegador el puntaje se va a seguir guardando.

Ahora, ¬Ņc√≥mo funciona realmente?. B√°sicamente guardo el puntaje del jugador en localStorage cuando se incrementa el puntaje en (1) y me aseguro de pedirle al navegador el puntaje guardado cada vez que se reinicia el juego en (2):

Luego, el puntaje toma el valor de la variable ‚Äúthis.puntaje‚ÄĚ del proyecto y listo!!

Por √ļltimo, si queres cambiar esa variable de puntaje o eliminarla para volver a empezar, tendr√≠as que abrir el inspector del navegador, abrir ‚Äúapplication‚ÄĚ y luego ‚Äúlocalstorage‚ÄĚ as√≠, vas a ver que aparecen los items y con el bot√≥n derecho del mouse vas a poder borrarlos o cambiarlos:

Ojal√° te sirva!, ¬°abrazo!

1 Like

Bueno, me llevó tiempo mejorar esto… ¡pero lo logré!, la próxima versión de pilas
auto-completa bien la api de localStorage:

2 Likes

Felicitaciones @hugoruscitti por el esfuerzo logrado, y te lo comento acá ya que están hablando del tema, ya que existe una función para guardar y tomar datos guardados, como hago para eliminar esos datos, por ejemplo tengo un juego que guarda las mejores puntuaciones y en el juego hay un botón que eliminé todas las puntuaciones para volver a empezar, como de lograría eso?? Perdón por mí ignorancia :wink:

Hola @PabloSosa!!, en caso de que quieras eliminar un registro tendrías que usar la función removeItem.

Por ejemplo, en el código que puse en un mensaje anterior guardaba el puntaje ejecutando este código:

localStorage.setItem("puntaje", this.puntaje);

Ahora, si quiero eliminar el puntaje tendría que ejecutar:

localStorage.removeItem("puntaje");

y listo, el puntaje debería desaparecer para volver a empezar.

1 Like