Nombre de vies et debug

Durée estimée: 45 minutes

Ce que l’on va faire :

  • corriger deux défauts de la version précédente
  • ajouter un son quand la voiture touche le vert,
  • utiliser un chronomètre pour afficher le temps du tour à l'arrivée,
  • donner 3 vies au début et retirer une vie à chaque sortie de route.

Réalisation

Ressources de départ : vous pouvez partir du résultat de la leçon précédente, ou du projet à cette adresse.

Notions abordées :

  • Mise au point
  • L'utilisation du son
  • Les variables et leur mise à jour : nombre de vies
  • La manipulation des variables
  • Les capteurs de type physique : la distance et le chronomètre

Déroulement

  1. Correction des défauts de la version précédente
    • La voiture qui gigote quand elle atteint le curseur :
      Pour corriger ce problème, il ne faut plus que la voiture avance quand elle touche le pointeur de la souris. Vous allez donc mettre la commande avancer de vitessse dans un bloc de branchement conditionnel qui vérifie que la voiture ne touche pas le pointeur.
      Le bloc qui teste si la voiture touche le pointeur, est placé dans un bloc non de négation logique. La voiture n'avancera que si elle ne touche pas le pointeur.

    • La voiture continue à avancer, lorsqu'elle est renvoyée au départ :
      Ajout d'un bloc stop ce script ou stop toutaprès avoir renvoyé la voiture au départ.
  2. (option) Ajouter un son
    • Pour la voiture, sélectionner l'onglet sons sélectionner un son qui correspond à un accident et revenir à l'onglet des scripts.
    • Avant le bloc qui renvoie la voiture au point de départ (lorsqu’elle a touché le vert) ajouter un bloc "jouer un son" et choisir celui qui convient dans la librairie, puis tester. Si nécessaire ajouter un bloc de réglage du volume.
  3. (option) Chronométrer le temps entre le départ et l'arrivée :
    • Créer une variable tempsDuTour
    • Initialiser cette variable au départ (ce n'est pas obligatoire - ca ne sera utile que si vous voulez calculer le record du tour),
    • Dans le script qui fait avancer la voiture, ajouter le bloc "initialiser le chronomètre", AVANT la boucle infinie (Sinon, que se passerait-il ?)
    • Lorsque la voiture touche l’arrivée (en bleu), avant le bloc qui dit qu’il a gagné,
      mettre la variable tempsDuTour à la valeur du chronomètre,
      puis modifier le bloc qui affiche que la voiture a gagné pour que le temps du tour apparaisse dans le message.
    • Tester puis masquer les variables dont l’affichage n’est pas utile.
  4. Nombre de vies
    • Sélectionner le lutin correspondant à la voiture, puis créer une variable "nombreDeVies", en cochant "pour tous les lutins" car il est possible que le nombre de vies soit nécessaire pour d'autres lutins que la voiture.
    • Au démarrage, c’est-à-dire dans la séquence qui suit le drapeau vert, ajouter le bloc qui met le nombre de vies à 3,
    • Dans le script de déplacement, retirer 1 au nombre de vies, immédiatement après le bloc qui renvoie au départ (car la voiture vient de toucher le vert),
    • Ensuite, si le nombre de vies à 0 on doit s’arrêter et dire que l'on a perdu.
      Immédiatement après le bloc précédent ajouter un bloc de contrôle qui teste si le nombre de vies est nul et si oui (à l’intérieur de ce bloc), ajouter un bloc qui affiche pendant 2 secondes « Vous avez perdu, plus de vies ! » puis arrêter tout avec le bloc Stop tout.
  5. Tester le fonctionnement du jeu,
  6. Debriefing sur les notions mises en oeuvre et préparation des leçons suivantes

Revue des notions mises en oeuvre

  • Variables : on a utilisé une variable pour le nombre de vies.
    Cette variable diminue de 1 à chaque sortie de route et on a perdu quand le nombre est égal à 0.
  • Le chronomètre est également une sorte de variable qui contient une valeur, mais cette valeur est mise à jour en permanence pour être égale au temps écoulé depuis que l'on a appuyé sur la barre d'espace. On ne peut pas le modifier comme la variable du nombre de vies, mais on peut s'en servir de la même manière.
  • Les sons : ils sont assez faciles à utiliser. Le bloc jouer un son jusqu'au bout va attendre que le son soit terminé pour continuer la suite du script. Nous avons utilisé l'autre jouer un son qui permet au script de continuer sans attendre.