Hice esto cuando el usuario gana
Utilizo clases con display:none para que no se vea de comienzo este HTML
Lo aprendí del curso de consumo de API, del mismo profe (es crack)
<section class="win-container inactive">
<h2> ¡Felicidades! Terminaste el juego</h2>
<span>🏆</span>
<p class="newrecord"></p>
<a href="/index.html"><input type="button" value="Volver a Jugar"></a>
</section>
Luego en js este es mi código
function gameWin() {
let newRecord;
clearInterval(timeInterval);
const newTime = Math.floor((Date.now() - timeStart)/1000);
const record = localStorage.getItem('record_time');
// si no tiene record o su tiempo es mejor que el anterior
if (!record || record > newTime ) {
localStorage.setItem('record_time', newTime);
newRecord = true;
}
game.fillText(m.emojis['WIN'], playerPosition.x, playerPosition.y);
setTimeout(()=> {
n.win.classList.remove('inactive');
n.gameContainer.classList.add('inactive');
newRecord ? n.recordStatus.textContent = 'Conseguiste un nuevo record'
:
n.recordStatus.textContent = `No superaste el record de ${record} seg.`;
}, 1000);
return;
}
En la función startGame le agregué esta línea
n.recordSeg.textContent = localStorage.getItem('record_time') || 'Todavía no tienes record de';
Si ya hay algo en localStorage lo muestra, si no le dice al usuario que todavía no tiene nada. Esto es visible en la vista principal
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?