Fin de partie
C'est la 5e étape sur 11 du tutoriel sur la création d'un jeu de casse-briques en utilisant uniquement JavaScript. Pour rendre le jeu plus intéressant, nous pouvons introduire la possibilité de perdre — si vous ne frappez pas la balle avant qu'elle n'atteigne le bord inférieur de l'écran, c'est la fin de la partie.
Comment perdre
Pour introduire la possibilité de perdre, nous allons désactiver la collision de la balle avec le bord inférieur de l'écran. Supprimez la dernière entrée, { boiteDeCollision: { ...collisionMurBase, top: canvas.height } }, de la liste elementsCollision.
Cela fait que les trois murs (haut, gauche et droit) renvoient la balle, mais le quatrième (bas) disparaît, laissant la balle tomber hors de l'écran si la raquette la manque. Nous avons besoin d'un moyen de détecter cela et d'agir en conséquence. Ajoutez les lignes suivantes à deplacerBalle(), juste après dt -= tempsTouche :
const balleEstHorsLimites = balle.boiteDeCollision.bottom > canvas.height;
if (balleEstHorsLimites) {
// Logique de fin de partie
alert("Vous avez perdu !");
location.reload();
return;
}
L'ajout de ces lignes vérifie si la balle dépasse les limites du monde (dans notre cas, le canevas) et affiche ensuite une alerte. Lorsque vous cliquez sur l'alerte résultante, la page se recharge, vous permettant de rejouer.
Note :
L'expérience utilisateur·ice ici est assez médiocre, car alert() affiche une boîte de dialogue système et bloque le jeu. Dans un vrai jeu, vous voulez probablement concevoir votre propre boîte de dialogue bloquante en utilisant <dialog>.
De plus, nous ajoutons plus tard un bouton « Démarrer », mais ici notre jeu commence immédiatement lorsque la page se charge, donc vous pouvez « perdre » avant même de commencer à jouer. Pour éviter la boîte de dialogue ennuyeuse, nous supprimons l'appel à alert() à partir de maintenant.
Comparer votre code
Voici ce que vous devez avoir jusqu'à présent, en cours d'exécution en direct. Pour voir son code source, cliquez sur le bouton « Exécuter ».
Prochaines étapes
Maintenant que la jouabilité de base est en place, rendons le jeu plus intéressant en introduisant des briques à casser — il est temps de construire le champ de briques.