Pacman - bases du jeu
Sur cette page tu trouveras comment :
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
- 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.
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 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.
