Scratch : se déplacer dans un labyrinthe


Dans cet exercice nous allons voir comment déplacer un lutin dans un labyrinthe et comment limiter ses déplacements. Il s'agit d'un programme que je fais souvent dans le cadre d'ateliers découverte.

1. Dessiner un labyrinthe

Le labyrinthe va être dessiné comme un arrière-plan.
  • Dans Nouvel arrière-plan cliquez sur Dessiner un nouvel arrière-plan pour ouvrir la palette graphique.

  • Dans la palette graphique sélectionnez le mode Vectoriser. Les outils se situent désormais à droite de la toile.

Vous pouvez maintenant dessiner un labyrinthe constitué de rectangles et de carrés en vous inspirant de cet exemple.



2. Les lutins

Cet exercice est constitué de deux lutins. Le chat qui correspond au lutin joué et un rond vert qui matérialise la fin du labyrinthe. Ce dernier a été importé depuis la bibliothèque. Il a pour nom Button1. Vous pouvez choisir le lutin de votre choix ou en dessiner un.



3. Programme du lutin joué

Voici le programme utilisé pour faire Avancer et Reculer le lutin 1 à l'aide des flèches droite et gauche du clavier.

Si vous testez ce programme vous vous apercevrez qu'il y a un problème. Lorsque la touche gauche est sélectionnée le lutin se dirige bien vers la gauche mais la tète en bas!





Pour remédier à ce problème il vous faut modifier le sens de rotation dans la Fenêtre information du lutin.





Voici le programme utilisé pour diriger le lutin vers le haut et vers le bas à l'aide des flèches directionnelles du clavier.








4. Limiter les déplacements


Pour commencer, il faut déterminer la position du lutin au démarrage du jeu, c'est-à-dire à l'entrée du labyrinthe

Ces coordonnées pourront être différentes en fonction de votre projet. Dans un précédent article j'explique le principe des coordonnées absolues sur la Scène : http://ludosciences.blogspot.fr/2016/11/scratch-les-deplacements.html
Pour connaître des coordonnées, il suffit de positionner la souris à l'endroit désiré: les coordonnées du point sont indiquées en bas à droite de la Scène.



Chaque fois que le joueur touche les limites du labyrinthe définies par la couleur noire, il sera renvoyé à l'entrée du labyrinthe pour recommencer le parcours. Pour créer cette interaction, nous allons utiliser une condition :

"Si la couleur noire est touchée alors le lutin va se positionner à x : -195 y : -135"


Le lutin Button1 est positionné à la sortie du labyrinthe. Pour gagner, le lutin joué doit le toucher. Il s'agit encore d'une condition.
L'objectif du jeu est que le lutin arrive jusqu'à la sortie du labyrinthe. Une fois arrivé le jeu est terminé. Le programme s'arrête.


"Si le lutin Button1 est touché alors le lutin joué affiche un message Gagné! pendant deux secondes puis le programme s'arrête."




Ces deux conditions vont être lues et testées par l'ordinateur une seule fois car elles ne sont écrites qu'une fois. Votre programme va bugger!
Pour corriger ce bug, il faut positionner les deux conditions dans une boucle de répétition. L'ordinateur va pouvoir ainsi les tester en permanence et les exécutées lorsqu'elles seront vraies.



Les fichiers sont téléchargeables : https://scratch.mit.edu/search/projects?q=LacazeSarah
se déplacer dans un labyrinthe - à compléter.sb2
se déplacer dans un labyrinthe - complet.sb2

Commentaires

Posts les plus consultés de ce blog

Scratch - Dessiner dans un repère orthonormé

Fabriquer une main articulée

Scratch : les déplacements