Gérer le nombre de vies et la vitesse

Durée estimée: 25 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
  • Donner 3 vies au début du jeu, et retirer une vie à chaque fois que la voiture touche le vert.
    Quand il n’y a plus de vie, le jeu est fini : perdu
  • Initialiser un chronomètre quand la voiture commence à avancer,
  • afficher la valeur du chronomètre quand la voiture touche la ligne d’arrivée
  • Améliorer le réglage de la vitesse : elle sera proportionnelle à la distance entre al voiture et le pointeur.

Réalisation

Ressources de départ : vous pouvez partir du résultat de la leçon précédente, ou du projet https://scratch.mit.edu/projects/171693493/.

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 :
      La commande avancer de vitessse est mise dans un bloc de branchement conditionnel qui vérifie que la voitire ne touche pas le pointeur. Si elle touche le pointeur, elle n'avancera pas.
    • La voiture continue à avancer, lorsqu'elle est renvoyée au départ :
      Ajout d'un bloc stop ce script après avoir renvoyé la voiture au départ.
  2. 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. 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 de 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.
  4. Chronométrer le temps entre le départ et l'arrivée :
    • Créer une variable tempsDuTour (pour le lutin voiture ou pour tous les lutins)
    • Initialiser cette variable au départ (ce n'est pas obligatoire - car non utile pour l'instant),
    • 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.
  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 2_03/assets/img/blockChronometre.png 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.