Coder un jeu de Pac Man avec Scratch - Défi 4
Pour cette quatrième semaine je
suis heureuse de vous annoncer que ce Pac Man a remporté un grand succès à la
Maker Faire de Paris qui s’est tenue du 22 au 24 novembre à la Cité des
Sciences et de l’Industrie.
Petits et grands ont testé la
version bêta. Deux petits bugs ont été repérés … et corrigés.
Les joueurs ont proposé des idées
pour améliorer le jeu, le poursuivre. Je vous les partagerai, à la fin du
#defiScratch afin que vous puissiez vous en inspirer pour créer votre propre
version.
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.
1. Déplacer Pac Man
Pour déplacer Pac
Man au sein du labyrinthe, je vous propose d’utiliser les flèches
directionnelles du clavier [haut, bas, droite, gauche]. Mais vous pouvez
utiliser les touches de votre choix.
Dans cette
version de Pac Man ce dernier ne se déplace pas en permanence. Il peut faire
des stops et ainsi laisser passer les Fantômes.
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.
- En modifiant les coordonnées x d’un sprite, il se déplace horizontalement : vers la droite, si la valeur est positive et vers la gauche si la valeur est négative.
- En modifiant les coordonnées y d’un sprite il se déplace verticalement : vers le haut si la valeur est positive et vers le bas si la valeur est négative.
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.
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.
si
touche flèche haut est pressée ? alors
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.
ajouter 2 à y // Pac Man se déplace vers le haut
de la scène.
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.
Les commentaires
situés dans le programme ci-dessus vous donnent des informations sur les
valeurs à renseigner pour [flèche bas].
Le programme de
[flèche droite] est quasiment identique à celui de [flèche haut]. Seuls
diffèrent :
- Le sens de rotation : fixer le sens de rotation gauche-droite.
- Ici c’est la coordonnée x qui est modifiée : ajouter () à x.
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.
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.
Afin de simplifierla création des pac-gommes, nous
allons créer un seul sprite pac-gomme et le dupliquer avec son programme.
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.
quand drapeau vert est cliqué
cacher
répéter
indéfiniment // cette boucle de répétition contient l’algorithme pour
modifier l’apparence des pac-gommes.
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.
montrer //
la pac-gomme est visible sur la scène.
répéter
indéfiniment // cette boucle de répétition permet de tester en
permanence une condition pour définir à quel moment la pac-gomme est touchée par
Pac Man.
si
touche le Pac Man ? alors // si la pac-gomme est touchée par le
sprite Pac Man.
cacher //
elle disparaît de la scène car elle a été mangée.
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é.
quand
l’arrière-plan bascule sur gagné
cacher
quand
l’arrière-plan bascule sur perdu
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.
1.
Faites
un clic droit sur sa vignette dans la Fenêtre des sprites.
2.
Sélectionnez
dupliquer.
Lorsque Pac Man a mangé toutes les
pac-gommes un message est envoyé pour ouvrir la porte qui bloc la sortie du
labyrinthe : porte ouverte.
Complétez le programme de Pac Man en
incorporant une condition : si la
variable points est égale (nombre totale de sprites de type pac-gommes créés),
alors envoyer à tous le message porte ouverte.
Pensez à initialiser la variable points à 0, tout comme la variable vies est
initialisée à 3.
Pour
vous aider :
Compte
Scratch : LacazeSarah
Nom du
fichier : Pac Man – défiScratch4
Version PDF téléchargeable de #defiScratch4.
Commentaires
Enregistrer un commentaire