Défi Scratch : Créer un jeu Pac Man
Défi Scratch : Créer un jeu Pac Man
[Link]
Le labyrinthe est le premier projet que je propose à mes élèves. Mais également aux adultes
que je forme à Scratch. Ce type de jeu permet de découvrir la palette graphique, différents
types de déplacements. D’apprendre à élaborer des instructions et des interactions entre les
sprites. Ainsi qu’à élaborer des tableaux, comptabiliser les points/ les vies. Je vous propose
de découvrir tout cela en sept semaines.
Sarah LACAZE
#défiScratch – 6 novembre 2019
[Link]
Je vous propose de dessiner avec la Palette graphique vos différents sprites, c’est-à-dire
Pac Man et les fantômes, à la manière du pixel art. Le pixel art consiste à juxtaposer des
carrés côte à côte pour dessiner. Cette technique est utilisée pour les créer des jeux car les
images étaient pixélisées en raison de la faible résolution des écrans.
1. Choisir un sprite
2. Peindre
Pour dessiner en pixel, c’est-à-dire en juxtaposant des carrés côte à côte, vous devez
basculer la palette graphique, qui s’ouvre par défaut en mode Vectoriel, en mode Bitmap.
Sarah LACAZE
#défiScratch – 6 novembre 2019
[Link]
2. Zoomez pour agrandir la toile.
3. Utilisez l’outil Pinceau.
4. Définissez la Taille du pinceau à 5 de manière à pouvoir dessiner des carrés.
5. Sélectionnez la Couleur de votre choix.
Il ne vous reste plus qu’à dessiner le contour de votre Pac Man en vous inspirant du modèle
ci-dessous.
Sarah LACAZE
#défiScratch – 6 novembre 2019
[Link]
1. Un œil
2. Un pixel à l’avant du Pac Man. Il servira de capteur pour faciliter les interactions avec
les autres éléments du jeu.
Sarah LACAZE
#défiScratch – 6 novembre 2019
[Link]
Dans le jeu, lorsque Pac Man se déplace il ouvre et ferme la bouche pour gober.
Pour élaborer le deuxième costume nous allons partir du premier costume, en le dupliquant,
et le compléter.
1. Supprimer le sprite du chat présent dans la fenêtre des sprites soit en cliquant sur la
croix soit en faisant en clique droit et en sélectionnant supprimer.
Sarah LACAZE
#défiScratch – 6 novembre 2019
[Link]
Une fois votre premier fantôme dessiné avec ses deux costumes. Vous
pouvez le dupliquer.
1. Faites un clic droit sur la vignette de votre fantôme dans la Fenêtre des sprites.
2. Sélectionnez dupliquer.
3. Il vous suffit juste de modifier la couleur avec l’outil Remplissage.
Vous pouvez télécharger la première étape du jeu, comportant le Pac Man, sur mon compte
Scratch. Et y incorporer directement vos propres fantômes.
Lien : [Link]
Sarah LACAZE
#defiScratch2 – 13 novembre 2019
1. Dessinez un labyrinthe
Le labyrinthe n'est pas un sprite mais un arrière-plan. Il est dessiné avec la Palette
graphique. Il consiste en un fond noir et des lignes bleues, qui représentent les murs.
3. Avec l'outil Rectangle (3) dessinez un rectangle noir (4) faisant toute la taille de la toile.
LACAZE Sarah
#defiScratch2 – 13 novembre 2019
5. Avec l'outil Ligne (5) tracez les murs en bleu (6). Sélectionnez une épaisseur
importante (7) afin que les murs puissent être détectés par les sprites.
LACAZE Sarah
#defiScratch2 – 13 novembre 2019
Vous pouvez dessiner le labyrinthe de votre choix. Pour le moment ne vous souciez pas de la
taille des sprites qui sont fort probablement trop grands pour se faufiler entre les murs. Vous
pourrez adapter la taille avec le bloc :
Un jeu commence par une page de présentation (titre du jeu, consignes etc.) et se termine
par un tableau de fin pour signifier que la partie est gagnée ou perdue.
LACAZE Sarah
#defiScratch2 – 13 novembre 2019
Le programme consiste à insérer dans une boucle de répétition (répéter indéfiniment) une
instruction pour alterner les costumes (costume suivant) en incorporant, entre chaque
changement, un temps d'attente (attendre () secondes).
LACAZE Sarah
#defiScratch2 – 13 novembre 2019
Vous pouvez télécharger le résultat du premier défi sur mon compte Scratch et y ajouter
directement votre propre Labyrinthe et autres tableaux.
Lien : [Link]
1. Dans la Fenêtre des sprites faites un clic droit sur la vignette du sprite que vous
souhaitez récupérer.
2. Sélectionnez exporter.
3. Une fenêtre d’enregistrement s’ouvre.
LACAZE Sarah
#defiScratch2 – 13 novembre 2019
LACAZE Sarah
#defiScratch3 – 20 novembre 2019
Vous pouvez retrouver tous ces éléments dans le projet Pac Man – défiScratch3 disponible
sur mon compte Scratch.
Cette semaine nous allons nous intéresser plus particulièrement à l’affichage des différents
arrière-plans en fonction des phases du jeu. Et à l’initialisation du joueur, Pac Man.
1. Les arrière-plans
Ce projet dispose de quatre arrière-plans. Ils s’affichent en fonction des phases de jeu grâce
au bloc basculer sur l’arrière-plan () et à l’envoi/ réception de messages.
LACAZE Sarah
#defiScratch3 – 20 novembre 2019
Les messages sont utilisés pour déclencher des actions qui peuvent être communes à des
sprites et des arrière-plans. Lorsqu'un message est envoyé seuls les sprites et arrière-plans
disposant du bloc de réception seront impactés.
4. L’arrière-plan gagné : il s’affiche lorsque le joueur a mangé toutes les billes (nous ne
les avons pas encore créées) et a atteint la sortie du labyrinthe sans perdre toutes
ses vies.
Pour élaborer le programme dédié aux arrière-plans veillez à bien avoir sélectionné la scène,
puis ouvrez l’onglet Code.
LACAZE Sarah
#defiScratch3 – 20 novembre 2019
Donnez toujours des noms explicites aux messages que vous utilisez !
LACAZE Sarah
#defiScratch3 – 20 novembre 2019
quand drapeau vert est cliqué // cette action lance l’exécution du programme.
envoyer à tous jeu // ce message est envoyé pour lancer la partie. Il est réceptionné par
Pac Man et les Fantômes qui deviennent alors visibles sur la scène.
LACAZE Sarah
#defiScratch3 – 20 novembre 2019
2. Pac Man
Lors du #defiScratch2 nous avions commencé à élaborer le programme de Pac Man. Nous
allons à le compléter en initialisant différents paramètres.
L’initialisation est une opération préliminaire au démarrage d’un programme. Elle consiste à
fixer certains paramètres (positions, nombre de vies, apparence etc.) de manière à ce que les
sprites disposent des mêmes caractéristiques à chaque redémarrage.
Les vies sont gérées par une variable. Une variable sert à stocker des informations
modifiables au fur et à mesure de l’exécution du programme.
LACAZE Sarah
#defiScratch3 – 20 novembre 2019
mettre la taille à 50% de la taille initiale // la valeur dépend de votre sprite et de votre
labyrinthe.
s’orienter en direction de 90 // j’ai choisi de le faire regarder vers la droite par rapport à
l’emplacement que j’ai choisi comme entrée de labyrinthe
aller à x : -198 y : -140 // ces coordonnées sont propre à mon jeu. Il s’agit des coordonnés
de l’entrée de mon labyrinthe.
LACAZE Sarah
#defiScratch3 – 20 novembre 2019
mettre vies à 3 // le joueur dispose de 3 vies. Le nombre de vies dont dispose le joueur (Pac
Man) est stocké dans une variable. Ce nombre pourra évoluer au fur et à mesure du jeu. I
servira notamment à déterminer si le jouer a perdu.
LACAZE Sarah
#defiScratch3 – 20 novembre 2019
Vous pouvez télécharger le résultat du deuxième défi sur mon compte Scratch.
Lien : [Link]
LACAZE Sarah
#defiScratch3 – 27 novembre 2019
Cette semaine nous allons voir comment déplacer Pac Man de manière à ce qu’il ne puisse
pas traverser les murs. Et ajouter les pac-gommes qu’il doit manger afin de pouvoir sortir du
labyrinthe.
Comme d’habitude je vous ai mis en lien sur mon compte Scratch l’étape précédente du défi,
corrigée Pac Man – défiScratch4
La scène sur laquelle se déplacent les sprites est un repère orthonormé dont le point
centrale est situé aux coordonnées x = 0 ; y = 0.
LACAZE Sarah
#defiScratch3 – 27 novembre 2019
Avec [flèche haut] Pac Man se déplace vers le haut en modifiant ses coordonnées y.
Avec [flèche droite] Pac man se déplace vers la droite en modifiant ses coordonnées x.
2
LACAZE Sarah
#defiScratch3 – 27 novembre 2019
quand je reçois jeu // ce message est envoyé lorsque l’arrière-plan jeu qui représent el
labyrinthe ‘affiche.
Remarque : comme me l’a demandé @samchatice vous pouvez remplacer par le bloc
quand l’arrière-plan bascule sur jeu.
répéter indéfiniment // il s’agit d’une boucle de répétition qui va contenir les quatre
instructions, sous la forme de conditions, utilisées pour déplacer Pac Man avec les flèches.
rebondir si le bord est atteint // pour éviter que Pac Man ne sorte de la scène.
fixer le sens de rotation tout autour // permet au sprite de se diriger en regardant vers le
haut de la scène.
s’orienter en direction de 0 // il s’agit d’un angle. Il est modifiable en déplaçant la flèche sur
le cadran qui apparait en cliquant sur le menu déroulant.
LACAZE Sarah
#defiScratch3 – 27 novembre 2019
si couleur (couleur du point situé devant Pac Man) touche ( couleur des murs du
labyrinthe) ? alors // le point que nous avons positionné devant le sprite du Pac Man sert de
détecteur afin que Pac Man ne puisse pas traverser les murs.
ajouter -2 à y // lorsque un mur est détecté, Pac Man ne peut plus avancer vers le haut. Il
recule vers le bas grâce à une valeur y négative.
LACAZE Sarah
#defiScratch3 – 27 novembre 2019
Le programme de [flèche droite] est quasiment identique à celui de [flèche haut]. Seuls
diffèrent :
LACAZE Sarah
#defiScratch3 – 27 novembre 2019
Vous pouvez désormais tester les déplacements de votre Pac man au sein du labyrinthe.
Mais auparavant, pensez à cacher les Fantômes pour vos tests !
2. Les pac-gommes
Pac Man se déplace pour manger toutes les pac-gommes. Dans le jeu original, certaines
pac-gommes ont des bonus. Elles procurent à Pac Man le pouvoir de manger à son tour les
fantômes pendant une durée limitée.
Pour ce projet, j’ai préféré élaborer une version plus simple. Les pac-gommes doivent être
toutes mangées pour pouvoir sortir du labyrinthe et gagner la partie.
LACAZE Sarah
#defiScratch3 – 27 novembre 2019
Vous pouvez dessiner vos propres pac-gommes ou utiliser l’un des sprite de la bibliothèque.
Pour ma part j’ai choisi le sprite ball qui dispose de 5 costumes.
Toutes les pac-gommes auront le même programme : quand elles sont touchées par pac
Man elles disparaissent et la variable points est incrémentée de 1.
La première pile de blocs est identique à celle des Fantômes : quand le drapeau vert est
pressé les pac-gommes, qui changent en permanence de costume, ne sont pas visibles.
cacher
attendre 1 secondes
costume suivant
La deuxième pile de bloc contient l’algorithme utilisé pour déterminé si la pac-gomme est
mangée par Pac Man. Dans ce cas, le compteur de points est incrémenté.
quand je reçois jeu // ce message est envoyé une fois que l’arrière-plan bascule sur jeu.
mettre la taille à 40% de la taille initiale // la valeur doit être adaptée à la taille de votre
labyrinthe.
si touche le Pac Man ? alors // si la pac-gomme est touchée par le sprite Pac Man.
LACAZE Sarah
#defiScratch3 – 27 novembre 2019
ajouter 1 à points // cette variable doit être créée de la même manière que vous avez créé
la variable vies (cf. #defiScratch3).
Les troisièmes et quatrièmes piles servent à faire disparaitre les pac-gomme de la scène
lorsque le joueur a perdu ou a gagné.
cacher
cacher
Une fois les programmes élaborer, vous pouvez dupliquer ce sprite autant de fois que vous
souhaitez de pac-gommes. Vous pouvez les positionner aux endroits désirés dans le
labyrinthe en utilisant la souris directement sur la scène.
LACAZE Sarah
#defiScratch3 – 27 novembre 2019
Pensez à initialiser la variable points à 0, tout comme la variable vies est initialisée à 3.
Vous pouvez télécharger le résultat du troisième défi sur mon compte Scratch.
Lien : [Link]
LACAZE Sarah
#defiScratch5 – 4 décembre 2019
Les deux autres Fantômes ont quant à eux un parcours aléatoire. Mais ce sera pour la
semaine prochaine.
Pour élaborer le déplacement de ces deux Fantômes vers la droite, vers la gauche, vers le
haut ou vers le bas nous allons utiliser un ensemble de blocs qui vont venir s’emboiter, tels
des Legos, dans le bloc glisser en () secondes x : () y : ().
1
LACAZE Sarah
#defiScratch5 – 4 décembre 2019
LACAZE Sarah
#defiScratch5 – 4 décembre 2019
LACAZE Sarah
#defiScratch5 – 4 décembre 2019
LACAZE Sarah
#defiScratch5 – 4 décembre 2019
LACAZE Sarah
#defiScratch5 – 4 décembre 2019
Voici, à titre d’exemple, le programme de mon Fantôme vert – Fantôme 4. Son parcours est
toujours identique
montrer
répéter indéfiniment // dans cette boucle de répétition est positionné les blocs qui forment
le parcours que va éffectuer en permanence le Frantôme vert.
attendre nombre alétaoire entre 0.5 et 2 secondes // il fait un stop dans son déplacement.
LACAZE Sarah
#defiScratch5 – 4 décembre 2019
LACAZE Sarah
#defiScratch5 – 4 décembre 2019
Voici, à titre d’exemple, le programme de mon Fantôme rose – Fantôme 3. Le parcours qu’il
effectue est toujours le même mais les temps de déplacement sont aléatoire grâce à
l’utilisation du bloc nombre alatoire entre () et ()
montrer
attendre 4 secondes // mes Fantômes sortent les uns après les autres.
répéter indéfiniment // dans cette boucle de répétition sont positionnés les blocs qui
forment le parcours éffectué en permanence par le Frantôme rose.
attendre nombre alétaoire entre 0.5 et 2 secondes // il fait un stop dans son déplacement.
LACAZE Sarah
#defiScratch5 – 4 décembre 2019
LACAZE Sarah
#defiScratch5 – 4 décembre 2019
Lors des défis précédents, nous avons utilisé des messages pour modifier les arrière-plans. Ces
messages sont également utilisés pour faire apparaître, ou disparaitre, les Fantôme de la scène.
Sur le même principe, Pac Man perd une vie (ajouter -1 à vies) ha ue fois u’il tou he u Fa tô e.
Et il etou e à l’e t e du la y i the.
10
LACAZE Sarah
#defiScratch5 – 4 décembre 2019
11
LACAZE Sarah
#defiScratch5 – 4 décembre 2019
Vous pouvez télécharger le résultat du quatrième défi sur mon compte Scratch.
Lien : [Link]
12
LACAZE Sarah
#defiScratch6 – 11 décembre 2019
Nous allons compléter le programme des sprites Fantôme 1 (bleu) et Fantôme 2 (orange).
Ces deux Fantômes ont le même programme car tous deux se déplacent d’une manière
aléatoire. Chaque fois qu’ils touchent l’un des murs ils changent de direction.
Les Fantômes peuvent prendre quatre directions différentes (gauche – droite – haut – bas).
Les directions sont gérées par une variable appelée directions. En fonction de la valeur de
la variable directions, le Fantôme se déplace différemment.
LACAZE Sarah
#defiScratch6 – 11 décembre 2019
Les déplacements sont gérés par un bloc déplacements. Ce bloc n’existe pas. Nous allons
le créer et le définir.
1. Dans la palette des blocs sélectionnez Mes blocs (1) et Créer un bloc (2)
2. Une fenêtre pour créer le bloc s’ouvre
3. Renseignez le nom de votre bloc déplacements (3)
4. Validez en sélectionnant OK
LACAZE Sarah
#defiScratch6 – 11 décembre 2019
Le bloc situé dans l’Espace des scripts va vous permettre de définir les sépcificités du bloc
situé dans la Palette des blocs. Pour cela il suffit de lui « coller » tous les blocs le
caractérisant.
LACAZE Sarah
#defiScratch6 – 11 décembre 2019
Chaque fois que le Fantome rencontre un mur il recule et il change de direction d’une
manière aléatoire. Le bloc déplacement est donc constitué de :
LACAZE Sarah
#defiScratch6 – 11 décembre 2019
LACAZE Sarah
#defiScratch6 – 11 décembre 2019
définir déplacements // tous les blocs accrochés à ce bloc forment les caractéristique du
bloc déplacements.
répéter indéfiniment // ouverture d’une boucle de répétitions qui contient lels quatre
conditions qui seront testées en permanence pour gérer les déplacement du Fantôme.
ajouter 1 à x // le Fantome se déplace vers la droit. Cette valeur peut être modifiée pour un
déplacement plus rapide.
ajouter -1 à x // le Fantome se déplace vers la gauche. Cette valeur peut être modifiée pour
un déplacement plus rapide.
LACAZE Sarah
#defiScratch6 – 11 décembre 2019
LACAZE Sarah
#defiScratch6 – 11 décembre 2019
Une fois le bloc déplacements défini il nous faut maintenant créer le programme pour mettre
en action le Fantôme 1. Ce programme sera presque le même pour le Fantôme 2.
Mon fantôme 1 est le dernier à entrer dans le labyrinthe. Derrière lui, la porte se referme.
quand l’arrière-plan bascule sur jeu // vous pouvez également utiliser quand je reçois jeu
comme nous l’avons vu dans le défi 5 pour les fantômes 3 et 4.
montrer // le Fantôme 1 est visible, bien que cachée derrière les autres fantômes.
attendre 8 secondes // ce temps d’attendre peut être modifié. Mes Fantômes entrent les uns
à la suite des autres dans le labyrinthe.
envoyer à tous fermeture porte // l’envoi de ce message est spécifique au fantôme 1 qui
entre end ernier dans le labyrinthe.
mettre directions à nombre aléatoire entre 1 et 4 // mon Fantôme va prendre une direction
aléatoire
déplacements // ce bloc correspond à celui situé dans la palette des blocs. Il présente
toutes les caractéristiques définies précédemment.
LACAZE Sarah
#defiScratch6 – 11 décembre 2019
Ce message sert à modifier l’arrière-plan qui bascule sur l’arrière-plan perdu. Et à cacher les
différents sprites. La partie étant terminée.
LACAZE Sarah
#defiScratch6 – 11 décembre 2019
3. La porte du labyrinthe
Pour pouvoir gagner, Pac Man doit manger toutes les pac-gommes et franchir la sortie du
labyrinthe. La sortie du labyrinthe se situe à l’endroit par lequel sont arrivés les fantômes.
Nous allons créer un sprite porte pour bloquer l’entrée de la sortie une fois que le dernier
fantôme (Fantôme 1) est entré dans le labyrinthe.
Dessiné avec la Palette grapique, ce nouveau sprite qui a pour nom porte représente une
ligne qui vient se positionner à l’entrée.
10
LACAZE Sarah
#defiScratch6 – 11 décembre 2019
2. Lui appliquer un effet fantôme à 100. Bien qu’invisible ce sprite est détectable par
Pac Man. Ce qui n’est pas le cas en utilisant le bloc cacher.
11
LACAZE Sarah
#defiScratch6 – 11 décembre 2019
Vous pouvez télécharger le résultat du cinquième défi sur mon compte Scratch.
Lien : [Link]
12
LACAZE Sarah