SE CONNECTER
1,2,3... codez ! | Le site de la Fondation La main à la pâte
Module 123 Codez | Programmer | Informatics and Digital Creation

Projet « Jeu de plateforme » – Etape 7 Faire sauter le lutin depuis les plateformes


1, 2, 3, codez ! - Activités cycle 4 - Projet « Jeu de plateforme » - Etape 7 : Faire sauter le lutin depuis les plateformes

Discipline dominante

Mathématiques

Résumé

Les élèves programment le comportementde saut du lutin « Joueur » depuis les plateformes. Plusieurs algorithmes peuvent être envisagés, mais certains sont plus commodes que d’autres à mettre en œuvre.

Notions

Idem séances précédentes.

Matériel

Pour l’enseignant :

  •  Fichier Scratch Platformer_V06_demo.
  •  Fichier Scratch Platformer_V06_correction.

Situation déclenchante

L’enseignant lance le programme Platformer_V06_demo, qui correspond à une correction de la version V05 avec, en plus de la plateforme continue, des plateformes vers lesquelles sauter. Il propose aux élèves de s’attaquer aujourd’hui à la fonctionnalité de saut du lutin « Joueur » :

  •  Avatar : saute si on appuie sur la flèche haute, à condition qu’il puisse prendre appui sur une plateforme.
  •  Elément de plateforme : sert d’appui pour les sauts.

L’organisation sera la même qu’à la séance 4 :

Créer la feuille de route de programmation (par binômes)

L’enseignant propose aux élèves de créer eux-mêmes leur feuille de route. Il passe de groupe en groupe et peut guider la réflexion, mais n’intervient pas outre mesure. Les élèves passent à l’activité de programmation proprement dite au fur et à mesure qu’ils achèvent leur listing de tâches.

Mettre en œuvre la programmation (par binômes)

Les élèves reprennent leur programme de la séance précédente et l’enregistrent sous un nouveau nom : Platformer_V06_nom_du_groupe. Ils se lancent, en autonomie, dans la réalisation des tâches qu’ils ont listées, tandis que l’enseignant passe de groupe en groupe pour échanger avec les élèves sur l’avancement de leur travail. L’enseignant rappelle que les élèves doivent sauvegarder régulièrement leur projet.

Mise en commun

L’enseignant identifie un groupe qui se heurte à une difficulté typique et lui demande de montrer son programme sur Scratch. Ce groupe se rend au tableau et montre le problème à la classe, pour la recherche collective d’une solution.
Par exemple, un groupe a programmé la fonctionnalité recherchée comme illustré ci-dessous, en modifiant le sous-programme du lutin « Joueur » qui permettait précédemment de faire remonter le lutin à la surface des plateformes :

Le saut en lui-même fonctionne, et ce seulement si le lutin « Joueur » est effectivement en contact avec une plateforme (si on presse sur la flèche haute alors que le lutin est déjà en l’air, il ne saute pas de nouveau, comme on le souhaite). Un problème persiste toutefois : lorsque le « Joueur » saute en étant sous une plateforme, dès lors qu’il touche cette plateforme, il monte pixel par pixel et traverse en quelque sorte le plafond !

L’enseignant demande aux élèves de détailler ce qui se passe si le lutin touche une dalle par le dessous. La classe constate qu’en suivant rigoureusement le programme, on anticipe l’effet obtenu (et non souhaité) : cet effet correspond parfaitement à ce qui a été programmé. Simplement, le groupe n’avait pas anticipé que la condition « Dalles touché ? » est vraie que le lutin « Joueur » touche les dalles par le dessus ou par le dessous. Plusieurs algorithmes peuvent être proposés par les élèves pour distinguer les contacts au plafond et au plancher :

  •  une idée est de se baser sur la valeur de la vitesse du « Joueur » au moment du contact avec une dalle, pour savoir s’il heurte un plafond ou le dessus d’une plateforme. Certains groupes peuvent essayer de mettre en œuvre une solution de ce type.
  •  une autre idée est de distinguer la face des dalles que le « Joueur » touche d’après leur couleur. Cette façon de faire contraint le dessin des dalles, mais elle semble très pratique. On peut d’ailleurs distinguer en même temps la face gauche et la face droite des dalles, ce qui facilitera la programmation ultérieure des rebonds sur les murs.

Note pédagogique
 Pour information, la première idée est difficile à mettre en œuvre de façon satisfaisante. Si des élèves se lancent dans l’aventure, ils rencontreront des difficultés qui renforceront la conclusion de séance sur le choix d’algorithme.
 Nous recommandons de leur permettre plus tard de récupérer le lutin dalle et les éléments de programme d’autres groupes qui auront mis en œuvre la deuxième idée, dans un esprit de coopération à l’échelle de la classe.

L’implémentation de la seconde idée nécessite de revoir le costume des dalles, par exemple comme ceci en format 24x24, avec des couleurs différentes sur chacune des 4 faces :

Le sous-programme du lutin « Joueur », qui contrôle maintenant sa chute et ses sauts, devient à une étape intermédiaire :

Pour que le rebond sur les plafonds soit effectif, il faut en plus faire en sorte que la vitesse verticale change de signe lorsque le lutin touche la couleur marron des plafonds :

Conclusion

La classe reprend la conclusion de la séance 4, qui s’applique tout à fait à la présente séance et s’en trouve renforcée.

A l’écran, le rendu du jeu ressemble désormais à cela (la capture d’écran a été réalisée pendant un saut) :