Pacman - bases du jeu

Sur cette page tu trouveras comment :

Voici Ʃgalement le lien vers un petit projet scratch qui te permettra de tester le jeu

Créer les sprites et ton arrière plan

Pour le projet Pacman, nous allons commencer par crƩer les ƩlƩments du jeu.

Commence par crƩer un sprite pour ton Pacman et un autre pour ton fantƓme.

  • Tu peux chercher 2 images dans google ou dĆ©buter en prenant celles-ci :
  • Pour cela, clique droit sur l’image, et choisis « enregistrer sousĀ Ā»

Puis importe tes sprites dans ton projet scratch :

Puis on va donner un arriĆØre plan. Utilise cette grille.Ā 

Comme ci dessus, clique droit sur l’image, et choisis « enregistrer sousĀ Ā»

Et choisis « importer un arrière plan » dans ton projet scratch

Tu peux ajuster la taille de tes sprites pour qu’ils soient bien proportionnĆ©s par rapport Ć  ta grille.

CrƩation de la boucle de jeu

Pour ce jeu, nous allons programmer toute « l’intelligenceĀ Ā» du jeu sur les arriĆØres plans pour pouvoir choisir facilement les diffĆ©rents mode de jeu, que nous ajouterons au fur et Ć  mesure.
Ā 
Pour l’instant nous allons crĆ©er le mode simple.
  • Un tour de jeu sera donc composĆ© des actions suivantes:
    • On attend un petit peu pour que le jeu soit jouable
    • le pacman bouge
    • le fantome bouge
    • et on recommence !

Voici donc la base de notre jeu.

Dans le code de l’arriĆØre plan :Ā 

On va créer 2 blocs dans la section « mes blocs » pour programmer les mouvements du pacman et les mouvements du fantome.

Ā 

Pour l’instant nous allons laisser de cĆ“tĆ© les 2 blocs qui se gĆ©nĆØrent automatiquement « dĆ©finir mouvement_fantomeĀ Ā» et « dĆ©finir mouvement_pacmanĀ Ā». Nous les coderons par la suite.

Puis on va coder, toujours sur l’arriĆØre plan, de quoi dĆ©marrer un jeu simple :Ā 

  • Quand le drapeau vert est cliquĆ©
  • RĆ©pĆØte indĆ©finiment :
    • d’attendre 0.2 secondes
    • enclenche le mouvement du pacman
    • puis le mouvement du fantome

Nous allons maintenant programmer les dƩplacements du pacman et ceux du fantƓme !

Les dƩplacements de Pacman

ContrƓle du pacman

Pour les dĆ©placements de Pacman, nous allons commencer par coder directement dans la scĆØne encore une fois, les contrĆ“les du mouvement. On va dĆ©finir le bloc « mouvement_pacmanĀ Ā», en envoyant un message prĆ©cis Ć  chaque fois que l’on presse une touche qui va devoir le faire avancer.

On va dire donner des conditions Ć  notre programme :

  • Si on presse la flĆØche du haut de notre clavier
    • alors on envoie le message « pacman_hautĀ Ā»
  • Si on presse la flĆØche droite de notre clavier
    • alors on envoie le message « pacman_droiteĀ Ā»
  • Si on presse la flĆØche du bas de notre clavier
    • alors on envoie le message « pacman_basĀ Ā»
  • Si on presse la flĆØche gauche de notre clavier
    • alors on envoie le message « pacman_gaucheĀ Ā»

RAPPEL :Ā 

Pour crƩer un nouveau message

  • prends le bloc envoyer Ć  tous message1
  • Clique sur message1
  • Nouveau message
  • Et tape ton texte voulu

Mouvements du pacman

On va maintenant aller sur le Sprite du Pacman pour coder le mouvement réel du pacman. 

  • Pour cela :
    • On va lui donner une position de dĆ©part sur la grille quand on clique sur le drapeau vert.Ā 
    • Puis nous allons lui dire où se dĆ©placer Ć  chaque fois qu’il recevra un le message « pacman_hautĀ Ā», « pacman_basĀ Ā», « pacman_droiteĀ Ā» et pacman_gaucheĀ Ā».

Cette sĆ©paration du contrĆ“le et du mouvement va permettre de mettre en place facilement le contrĆ“le automatique par l’IA et l’apprentissage.

Information importante Ć  retenir :Ā 

Chaque case mesure 60 pixels, notre pacman va donc se dƩplacer de 60px en 60px.

  • Nous allons crĆ©er deux variables : pacmanX et pacmanY et leur donner comme valeur « 1Ā Ā».

Ces variables vont nous servir pour diriger le pacman horizontalement et veticalement. Et cela nous aidera aussi Ć  limiter les dĆ©placements Ć  la grille afin que les personnages n’en sortent pas.

  • Et on va programmer la position de dĆ©part de Pacman :
    • x = -180 y = -120
    • Le sens de rotation de pacman sera Ć  360° pour qu’il puisse regarder dans la direction choisie.
    • Et pour dĆ©marrer, notre pacman sera orientĆ© Ć  90°

Dernière étape : On programme le mouvement réel du pacman, suivant le message reçu (pacman_haut, pacman_droite, pacman_bas, pacman_gauche)

  • La variable pacmanX gĆØre les dĆ©placements horizontaux (de gauche Ć  droite)
  • La variable pacmanY gĆØre les dĆ©placements verticaux (de haut en bas)

Ne pas laisser le pacman sortir de la grille :Ā 

  • Si pacmanX est Ć©gale Ć  7 ou Ć  1 : pacman se trouve aux extrĆ©mitĆ©s de la grille et ne doit donc plus se dĆ©placer vers les bords de la grille.Ā 
  • Si pacmanY est Ć©gal Ć  5 ou 1 : pacman touche le bord haut et bas de la grille, et ne doit donc plus pouvoir se dĆ©placer.
  • Quand on reƧoit le message « pacman_droiteĀ Ā»
    • Si pacmanX est infĆ©rieur Ć  7, il peut encore se dĆ©placer dans la grille
    • Alors on ajoute 1 Ć  la variable pacmanX pour dĆ©finir sa nouvelle position
    • On ajoute 60 Ć  X car une case le fait avancer de 60 pixels
    • Et on oriente le pacman de 90 pour qu’il soit visuellement dans le bon sens
  • Quand on reƧoit le message « pacman_gaucheĀ Ā»
    • Si pacmanX est supĆ©rieur Ć  1, il peut encore se dĆ©placer dans la grille
    • Alors on ajoute -1 Ć  la variable pacmanX pour dĆ©finir sa nouvelle position
    • On ajoute -60 Ć  X car une case le fait reculer de 60 pixels Ć  gauche
    • Et on oriente le pacman de -90 pour qu’il soit visuellement dans le bon sens

On va appliquer la mĆŖme logique pour PacmanY qui gĆØre les mouvements vers le haut et le bas

Teste les mouvements de ton pacman !

Attention : Pour que ton pacman se dĆ©place tu dois maintenir les touches appuyĆ©es et ne pas faire un appui court, sinon Ƨa ne marchera pas. La plupart du temps le code ne fait qu’attendre et il ne vĆ©rifie pas si une touche est appuyĆ©e.

Les dƩplacements du fantƓme

ContrƓle du fantƓme

Retourne dans la scĆØne pour commencer le code du fantĆ“me sur l’arriĆØre plan.

Le fantĆ“me se dĆ©placera automatiquement en fonction de la position de pacman. Si la position x du fantome est la meme que celle du pacman, il se dĆ©placera donc sur l’axe Y.
De mĆŖme pour l’axe Y, si celui du fantĆ“me et du pacman sont Ć©gaux, il se dĆ©placera sur l’axe X.

Sinon, si aucune de ces deux conditions n’est vraie, le fantĆ“me se dĆ©placera de faƧon alĆ©atoire.

Commence par crĆ©er trois blocs dans la scĆØne : 

-mouvement_fantome : permettra de vƩrifier les positions

– fantome_bouge_x : pour se dĆ©placer sur l’axe X

– fantome_bouge_y : pour se dĆ©placer sur l’axe Y


Commence par définir le bloc « mouvement_fantome » que nous avons déjà dans notre scène.

CrƩe 2 variables : fantomeX et fantomeY

Puis crƩe 2 blocs : fantome_bouge_X et fantome_bouge_Y (cela va te crƩer automatiquement 2 blocs dƩfinir fantome_bouge_X et fantome_bouge_Y que nous programmerons ensuite)

Et on va coder les conditions de choix de dƩplacements automatiques du fantome

Comme pour Pacman, nous envoyons des messages au sprite du fantĆ“me pour qu’il se dĆ©place.

Code les messages Ć  envoyer :

Lorsque le fantome bouge en X (donc Ć  gauche et Ć  droite)

Et lorsque le fantome bouge en Y (donc en haut ou en bas)

Mouvements du fantome

Rends toi maintenant sur le sprite du fantƓme.

Le code suivra le mĆŖme principe que celui de Pacman.Ā 

  • Le fantĆ“me dĆ©marra en haut Ć  droite de l’Ć©cran
    • nous devons donc lui donner la position suivante : x = 180 y = 120.
  • La rotation du fantĆ“me se fera Ć  gauche ou Ć  droite selon ses dĆ©placements.

Et l’on programme les messages envoyĆ©s au sprite fantome, de la mĆŖme maniĆØre que l’on a pu faire les messages envoyĆ©s au sprite pacman :Ā 

  • Quand on reƧoit le message « fantome_droiteĀ Ā»
  • Quand on reƧoit le message « fantome_gaucheĀ Ā»
  • Quand on reƧoit le message « fantome_hautĀ Ā»
  • QSuand on reƧoit le message « fantome_basĀ Ā»
Ā 

Ā 

Teste ton jeu pour voir si le fantome bouge correctement.

Pour le moment, on peut ĆŖtre mangĆ© par le fantome et continuer Ć  jouer, c’est normal, nous allons le programmer!

Ajout des conditions de jeux

On a maintenant le fantƓme et le pacman qui se dƩplacent correctement.
Il ne reste plus qu’Ć  ajouter quelques Ć©lĆ©ments de jeux :
  • On va ajouter un score comptant le nombre de coups jouĆ©s pendant lequel le joueur Ć  survĆ©cu.
  • Puis, quand le fantĆ“me touche le pacman, on a perdu !

On va coder sur la scĆØne en arriĆØre plan :

Pour cela, reprends le code que nous avions mis au dĆ©part, et nous allons le modifier pour qu’ils prennent en compte de quoi compter le nombre de coups jouĆ©s, et de quoi stopper le jeu quand on a perdu.

Commence par créer une variable « score »

  • Ajoute « mettre la variable score Ć  0Ā Ā»
  • Change « rĆ©pĆ©ter indĆ©finimentĀ Ā» par « rĆ©pĆ©ter jusqu’Ć  ce queĀ Ā»
  • fantomeX=pacmanX et que fantomeY=pacmanY
  • On laisse les conditions de jeu que nous avions dĆ©jĆ 
    • Attendre 0.2 secondes
    • Faire agir mouvement_pacman
    • Et mouvement_fantome
  • Puis on ajoute 1 Ć  la variable de score
  • En dessous on code si le fantome et le pacman sont au mĆŖme endroit, alors on envoie le message « game_overĀ Ā»
  • Et on stoppe tous les autres scripts du sprite, on a perdu!

Dans le sprite du pacman, on définit le message « game_over »

Teste ton jeu !

Sauvegarde ton projet

Il est important que tu sauvegardes ton projet dans ton ordinateur.
Tu pourras ainsi l’importer dans scratch3 avec machinelearningforkids, pour crĆ©er ton IA dessus !

Conseil : Tu peux envoyer Ć©galement le fichier Ć  ton animateur pour qu’il le garde prĆ©cieusement et que tu sois sĆ»r de le retrouver.

Retour en haut