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.



Sur le principe de l'instruction pour [flèche haute] écrivez le programme pour programmer [flèche bas].
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.



Elaborez le programme de [flèche gauche] à partir du programme de [flèche droite] en vous référent aux instructions données pour [flèche bas]. 

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.


Pour dupliquer un sprite, c’est-à-dire en faire une copie avec ses costumes et son programme.

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 :

Vous pouvez télécharger le résultat du troisième défi sur mon compte Scratch.

Compte Scratch : LacazeSarah

Nom du fichier : Pac Man – défiScratch4


Version PDF téléchargeable de #defiScratch4.




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