Tutoriel – Scratch : jeu de la chenille (Snake)

Ce tutoriel explique comment réaliser un jeu vidéo, qui consiste à faire grossir une chenille, avec le logiciel Scratch.

Convient pour
Elèves (école primaire), Elèves (école secondaire), Jeunes en décrochage scolaire
Age
Adolescents, Enfants
Niveau de compétence i
Niveau 2
Format
Fiche d'activité
Droits d'auteur i
Creative Commons (BY-SA)
Langue(s)
Français , Anglais

Objectif général

Compétences

Temps de préparation pour l'animateur

moins d'une 1 heure

Domaine de compétence

3 – Création de contenu

Temps requis pour compléter l'activité (pour l'apprenant)

0 – 1 heure

Nom de l'auteur

Caroline Fohrer

Matériel supplémentaire

Ordinateur

Ressource originellement créée

Français
Déroulé

Introduction

Nous allons programmer un jeu dans lequel on dirige une chenille afin de lui faire manger des pommes. A chaque fois qu’un fruit est avalé, la chenille grandit. Si la chenille touche le bord du jeu ou touche son propre corps, le jeu est terminé.

Préparer l'arrière-plan

  • Cliquer sur le bouton « choisir un arrièreplan dans la bibliothèque ».
  • Choisir l’arrière-plan « neon tunnel ».

Créer la chenille

  • Cliquer sur « dessiner un nouveau lutin ». Nommer ce lutin « chenille ». Ne pas oublier de supprimer le chat.
  • On commence par le corps. Dans l’interface dessin, passer en mode « vecteur » en appuyant sur le bouton en bas à droite. Dessiner un cercle marron et le remplir de jaune. Faire en sorte que la taille du corps ne dépasse pas les 30 pixels. Pour cela, regarder l’icône du lutin juste à gauche de l’interface de dessin : si on agrandit ou rétrécit le cercle, les valeurs changent. Dans cet exemple le corps fait 25 pixels sur 25 pixels. Nommer le costume « corps ».
  • Bien penser à centrer le lutin. Avec l’outil de centrage, placer le croisement des lignes au milieu du lutin.
  • On continue avec la tête. Dupliquer le costume « corps », et nommer le nouveau costume « tête ». Dessiner un nez et des yeux. Faire en sorte que le nez ne dépasse pas du cercle

La chenille bouge

  • Créer une variable « taille » correspondant à la taille en pixels du corps et de la tête de la chenille, soit dans notre exemple, 25 pixels.
  • La chenille avance tout le temps. Reproduire le script ci-contre. Explication du code : Au départ du jeu, la chenille est placée au milieu et orientée vers la droite. Elle est placée au premier plan. On lui met le costume « tête ». On initialise la variable « taille » à 25 car la taille de la tête est de 25 x 25. Elle avance d’une distance correspondant à sa propre taille.
  • A chaque fois qu’on appuie sur une touche fléchée du clavier, il faut que la chenille change de direction. Recopier les 4 scripts de direction ci-contre. Explication du code : Quand on appuie sur une flèche (haut, bas, gauche, droite), la tête s’oriente dans la direction correspondante.
  • Tester le jeu. Problème : La chenille va trop vite. Pour la ralentir, créer une variable « delai » et modifier le script du mouvement en ajoutant les blocs correspondants, comme celui cicontre. Explication du code : On initialise la variable « delai » à 0.2 et entre chaque déplacement de la chenille on attend ce temps en secondes. Plus ce temps est grand, plus la chenille est lente.

Le corps de la chenille

  • Créer une variable « longueur » qui représente la longueur de la chenille.
  • Comment gérer le mouvement du corps de la chenille ? Astuce : à chaque fois que la tête de la chenille avance, un clone de son corps est créé et se place à l’emplacement précédent de la tête. Le clone reste durant un temps équivalent à la longueur multipliée par le délai de déplacement. Ainsi, plus la longueur est importante, plus le clone restera longtemps. C’est ainsi que l’illusion d’un corps est créé. Modifier le script du mouvement, en ajoutant les blocs correspondants, comme celui cicontre. Explication du code : on initialise la longueur de la chenille à 1. Juste avant de faire bouger la tête, on crée un clone.
  • Ajouter le script des clones (le corps). Explication du code : on bascule sur le costume « corps ». Le clone reste pendant un temps équivalent à la longueur de la chenille multipliée par le délai de déplacement en secondes puis est supprimé.

La pomme

  • Créer un nouveau lutin « Apple » à partir de la bibliothèque. Nommer-le « pomme ».
  • Une pomme apparaît aléatoirement dans le jeu. Quand la chenille l’avale, elle disparaît et une nouvelle apparaît ailleurs. A chaque fois qu’une pomme est avalée, la longueur de la chenille augmente de un. Recopier le script ci-contre. Explication du code : on cache la pomme au départ. On réduit sa taille à 30 % de l’original. On répète indéfiniment la séquence suivante: on positionne aléatoirement la pomme sur l’écran ; on la montre ; on attend jusqu’à ce que la tête de la chenille soit dessus ; on joue alors un son ; on ajoute 1 à la longueur de la chenille ; on cache la pomme qui vient d’être avalée.
  • Problème : la pomme peut apparaître sur la chenille (ou derrière). Pour éviter qu’une pomme apparaisse aléatoirement sur la chenille, on ajoute un test de condition après le positionnement de la pomme. Ci-contre le script complet de la pomme. Explication du code : après que la pomme ait été placée, on répète tant que la couleur jaune (couleur de la chenille) est touchée (ou jusqu’à ce que la couleur jaune ne soit pas touchée – ce qui revient au même) : je repositionne aléatoirement la pomme.

Fin du jeu

Le jeu s’arrête quand la tête de la chenille touche le bord ou quand elle touche son corps.

Modifier le script de la chenille comme ci-contre.

Explication du code : après que la chenille ait avancé, on teste si le bord est touché ou si la couleur jaune (couleur du corps) est touchée. Si c’est le cas : on joue un son de cymbale et on arrête tous les scripts.

Bonus

Améliorations possibles du jeu :

  • Ajouter un score
  • Accélérer la vitesse de la chenille
  • Mettre plus de pommes
  • Ajouter des malus

Pour aller plus loin

Conseil médiation 

Pour aller plus plus loin sur le sujet, nous vous conseillons de vous référer à la fiche outil « Guide de présentation de Scratch«