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.