Aller au contenu

Emission #9 Ajoutez des options sur le jeu Pacman – La Programmation Expliquée à ma Copine

Retrouvez Sandrine dans cette nouvelle émission de la Programmation expliquée à ma Copine.

Aujourd’hui vous allez voir comment approfondir le jeu Pacman, pour y ajouter des options afin de l’améliorer.

Tout est dans la vidéo ci-dessous.

[ppmaccordion][ppmtoggle title= »Afficher le texte de la vidéo »]

Emission #9 Ajoutez des options sur le jeu Pacman – La Programmation Expliquée à ma Copine

Matthieu : Bonjour à tous et bienvenu sur l’émission « la programmation expliquée à ma copine », bonjour Sandrine.

Sandrine : Bonjour Matthieu.

Matthieu : Dans cette nouvelle émission, c’est la suite de la précédente, Sandrine va essayer de créer le jeu pacman qu’elle avait fait en flash et le convertir pour qu’il soit jouable sur les tablettes, les smartphones et le web. Il y a eu déjà on est partit d’un code source existant que l’on va améliorer au fur et à mesure en se posant les bonnes questions et le but pour vous c’est d’apprendre les stratégies, c’est-à-dire la dernière fois vous avez appris la gestion, qu’est-ce qu’est un objet, ses propriétés, enfaite c’est les caractéristiques, par exemple, d’un joueur dans le jeu ou d’un objet du jeu avec des caractéristiques comme les ennemis on des caractéristiques et des vies, donc ça c’est un objet, ensuite la gestion du clavier avec le framework Phaser, le fait d’écouter lorsque le joueur appuie sur une touche particulière du clavier et d’effectuer les déplacements et donc là aujourd’hui on va passer à la suite, profitez-en écoutez bien, si vous avez des questions vous pouvez toujours les poser sous cette vidéo, et l’équipe développement facile vous répondra.

Alors Sandrine, sur quoi veux-tu partir aujourd’hui pour créer le jeu pacman sachant qu’on a bien avancé, on s’est dit que maintenant on va pouvoir intégrer des images pour personnaliser le héro, les ennemis, la gestion des vies, là il a 5 vies actuellement parce qu’on a modifié sa propriété hp, sa caractéristique. Alors qu’est-ce que tu as d’autre comme question ?

Sandrine : Ecoutes, dans mon souvenir pacman c’était un petit bonhomme qui mangeait des citron.

Matthieu : Oui donc là dans cette version là il n’y a rien.

Sandrine : Là il mange rien pour le moment, on a un petit bonhomme qui parcours le labyrinthe qui est créé aléatoirement et qui se fait poursuivre par je ne sais combien d’ennemis.

Matthieu : Des 0.

Sandrine : Combien as-tu créé d’ennemis ?

Matthieu : Il doit y avoir une variable avec le nombre d’ennemis, il y en a 28. Donc ça fait beaucoup on peut en mettre un peu moins ça lui laissera peut être une chance de gagner. Et donc comment, enfaite si on regarde bien le jeu, il y a des points partout et il n’y a pas de bonus pour le héros, et donc ce qu’il faudrait, c’est au moment où ont créé la carte, on a vu la dernière fois qu’il y avait une fonction init carte, ou il faudrait rajouter des bonus. Là c’est un bloc, les blocs ça peut être de type, un mur, un ennemis, un mur c’est un obstacle, un ennemis, et donc on pourrait rajouter un 3eme élément dans init map qui serait de mettre un bonus en plus. Map random, on ferait entre 2 valeurs supérieurs ou égales, comprises entre 0,5 et 0,8, inférieur à 0,5 on dirait que ce sera un bonus, supérieur à 1, enfin entre 0,5 et un 1 c’est un mur, supérieur à 1 on pourrait dire que c’est un ennemi, c’est une zone libre, il y aurait…

Sandrine : Il faudrait lui mettre des petits bonbons à manger aussi.

Matthieu : Voilà, .rien et donc le bonus, ce sera un bonus qui lui permet de rattraper une vie, il y aurait le bonus 1 et le bonus 2 qui inverserait les règles du jeu, qui lui permettrait de manger les ennemis sans perdre de vie.

Ça se passerait ici, on ferait plusieurs if else, if else, donc if map random, on modifierait, on utiliserait, il doit y avoir dans ce code une fonction de random et de, ou alors j’en ai une autre dans un autre code, enfaite, ça permet d’avoir un nombre aléatoire, voilà c’est ça, random int, on va utiliser cette fonction-là qui va nous permettre d’avoir un nombre aléatoire entre, sur une valeur maximum et on va faire même mieux, on va prendre une fonction, elle n’est pas là mais on la rajoutera plus tard, parce que je ne les connait pas par cœur et c’est ce que je vous conseille d’avoir c’est des bibliothèques de fonctions, là on va avoir besoin d’une fonction qui génère un nombre aléatoire entre deux valeurs fixes. Par exemple un nombre aléatoire entre 0 et 3 inclus. Donc ça c’est pas besoin de réinventer la roue, vous prenez dans votre librairie de fonction, c’est ce qu’on va faire on prendra notre fonction dans la librairie de fonction et on va générer un nombre aléatoire entre 0 et 3 on va se dire, si la valeur c’est 0, c’est un mur, si la valeur c’est 1 c’est normal, si la valeur c’est 2 c’est le citron qui donne une vie au joueur.

Sandrine : Pas forcément une vie, moi ce que je voudrais c’est qu’ont créé un vrai pacman avec un labyrinthe et il a tant de citron à manger et quand il a mangé tous ces citrons on passe au labyrinthe supérieur.

Matthieu : A moi je pensais que dans ce jeu pacman, dès qu’il avait tué tous les ennemis, il passait au niveau supérieur. Mais après on peut changer les règles.

Sandrine : On est pas sur le même thème de pacman.

Matthieu : Et le 4eme ça inverserait les règles du jeu. Il pourrait tuer les ennemis. On pourrait dire qu’il y a 4 bonus citrons à récupérer, et là on va faire un if, math : nom de la fonction create nombre entre deux valeurs si c’est 0 on a dit vide, 1 c’est le mur, 3 c’est le citron, donc on va faire if math. La valeur = 3 et nombre de citron, est-ce qu’il reste encore des citrons, si on en reste 4 on va en décrémenter un à chaque fois et dès qu’il aura construit toute la carte, il y aura tous les citrons de placés. Et sinon dernière valeur, possibilité, ce sera le bonus qui inverse les règles du jeu et donc si le pacman tombe sur cette valeur-là, comme ici on regarde le jeu, si on tombe sur un ennemis, il décrémente une vie, là on saura que si il tombe sur un bonus ou sur un citron on fera ce qui est nécessaire, par exemple le bonus, on va lui rajouter une vie dans sa propriété hp, vu que c’est un objet donc c’est simple à gérer, ou sinon si il prend un citron on va dire il ne reste plus que 3 citrons sur 4 à récupérer pour passer au niveau suivant.

Et à un moment, par exemple dans cette fonction, on update, dans la fonction qui est appelée régulièrement toutes les images par secondes par le jeu lui-même, on va se dire, si il n’y a plus de citrons on va afficher le message fin du jeu, on le mettra à true et on va afficher l’écran gagné pour le joueur. Ca ça se gère très simplement en rajoutant une variable le nombre de citrons à récupérer, on décrémente au fur et à mesure que le pacman en récupère un, et après on a toujours le nombre de vie du pacman, ça, ça change pas c’est l’existant qui est décrémenté à chaque fois qu’il perd une vie.

Sandrine : Et admettons qu’il tombe sur un… Je crois que c’est sur la variable 3, il a mangé un bonus, et là il a le droit d’aller croquer les petits fantômes.

Matthieu : Voilà et donc ?

Sandrine : Il faut lui attribuer peut être un délai ? Pendant 10 secondes par exemple ?

Matthieu : Exactement donc là ça voudra dire, bien vu, qu’il faudra prévoir dans notre jeu un timer, en javascript il y a une fonction timer que l’on va utiliser, on va initialiser, on va se dire pendant un certain temps, on va utiliser une variable b super héros = true, on va mettre la variable dès que le pacman va toucher ce bonus, quelque part là où il va toucher le bonus on va mettre b super héros à true et donc dans b on update il y aura b super heros = a on va tester if == true ça voudra dire qu’il pourra tuer les ennemis, il sera super fort et en même temps on aura lancé notre timer pendant 30 sec, au bout de 30 sec le timer va s’arrêter, il y aura une fonction qui sera rappelée automatiquement par le timer et on va repasser b super hero à false et donc dans tout notre code ou on test b super héros, ce sera l’inverse, le joueur ne pourra plus manger les ennemis, c’est comme ça qu’on va le gérer par le code. C’est toujours des fonctions très simple, il faut vous simplifier la vie, vous savez qu’il y a la fonction timer qui existe en JavaScript, donc je répète, dès que le héros touche un bonus qui inverse les règles du jeu, on appelle le timer, on passe b super héros à true et dans tous le code ou on testait b super héros vu que ce sera à true, on va lancer comme quoi le pacman peut manger les ennemis. C’est aussi simple que ça et du coup en code ça se fait aussi aussi facilement.

On va dire une dernière question pour cette émission si t’en a une ?

Le changement de niveau peut être ?

Sandrine : Ouais voilà.

Matthieu : Quand le joueur a gagné, à un moment il doit y avoir écrit victoire, voilà, donc là il faudra changer le code parce que on a dit, si tous les ennemis sont morts, c’est le jeu actuel, on passe au niveau supérieur mais Sandrine elle souhaite, quand tous les citrons sont capturés par le pacman on passe au niveau supérieur, donc ce ne sera plus un test sur le nombre d’ennemis en vie mais un test sur le nombre de citrons présents, mangés. Il y a une variable à chaque fois que le pacman touche un citron, il faudra penser à décrémenter cette variable, quand elle sera à 0 on affiche la victoire, on met que c’est la fin du jeu. Là au lieu de mettre que c’est la fin du jeu, c’est la fin du niveau, ce qui permettra de lancer, si vous regardez, il suffira de renseigner votre nom et votre adresse mail pour recevoir les cours sur le framework phaser, des cours gratuits, on va lancer l’écran, c’est très simple il suffit de faire un appel qui va lancer l’écran de niveau suivant. Il y a un nouvel écran qui va s’afficher, il y aura écrit allez au niveau suivant ou fin de partie. Le joueur pourra choisir, et donc quand le joueur va appuyer sur le niveau suivant on va rappeler ce code-là la création d’un nouveau niveau et on va relancer la partie avec un nouveau niveau.

On verra dans la prochaine émission comment basculer d’un écran sur un autre avec le framework phaser, à travers un autre exemple d’application comme ça se sera à vous de jouer, vous réunirez les deux applications, d’un côté ce jeu pacman et de l’autre le fait de basculer d’un écran à un autre, ça vous fera un excellent exercice pour voir si vous avez compris comment utiliser le framework phaser.

Sandrine : Très bien.

Matthieu : C’est la fin de cette émission « la programmation expliquée à ma copine », donc déjà vous avez des exercices, effectuez les modifs de ce code pour voir si vous avez bien compris le fait d’implémenter les bonus, d’inverser le jeu pour que le héros puisse manger les ennemis, de programmer des citrons que le héros puisse manger quand les citrons sont mangés on bascule sur le niveau suivant, et donc dans la prochaine émission vous verrez comment effectuer cette bascule d’un écran à l’autre dans un jeu sur tablette avec le framework phaser.

Maintenant comme je vous l’ai dit, si vous voulez allez plus loin au lieu d’attendre la prochaine émission si vous voulez gagner du temps, il suffit de renseigner votre nom, votre adresse mail juste en dessous de cette vidéo, et vous allez recevoir par mail directement des cours sur la programmation, comment créer des applications, que ce soit avec le framework phaser ou avec d’autres Frameworks, et petit à petit vous allez apprendre les mécanismes, une façon de penser pour programmer des applications performantes très rapidement, par contre si vous voulez allez plus loin et être accompagné par une équipe d’experts, juste au-dessus de nous il y a un lien cliquable, une image il suffit de cliquer dessus, vous allez être redirigés dans la deuxième vidéo dans laquelle vous allez apprendre comment créer des applications pour mobiles, smartphone, le web très rapidement, comment travailler en équipe pour gagner du temps, créer rapidement vos applications à plusieurs développeurs sur la même application, comment créer une architecture d’application qui soit solide que vous puissiez faire évoluer très facilement, très rapidement, tout ça c’est dans la deuxième vidéo, il y a l’équipe d’experts développement facile vous accompagne, des développeurs qui ont plus de 10 ans d’expérience dans différents langages qui vont vous accompagner, répondre à toutes vos questions, cliquez sur le lien juste au-dessus de nous, tout est expliqué dans la deuxième vidéo en attendant avec Sandrine on vous dit à bientôt pour la prochaine émission « la programmation expliquée à ma copine », Sandrine si tu as un dernier conseil à donner.

Sandrine : Je dirais comme la dernière fois, soyez sage et programmez bien. Merci Matthieu en tout cas.

Matthieu : Merci Sandrine et à bientôt.

Sandrine : A bientôt.

[/ppmtoggle][/ppmaccordion]

Quel aspect de la programmation du jeu de Pacman voulez vous voir aborder dans l’émission ?

Utilisez la zone commentaire pour nous demander quel point vous souhaiteriez approfondir.

EXCLUSIF : Les 7 Secrets Révélés de JavaScript pour Créer VOS Applications — dès la semaine prochaine !

EXCLUSIF : La formation « JavaScript Facile » OFFERTE pour Créer VOS Applications — dès la semaine prochaine !

EXCLUSIF : Créez VOS Applications JavaScript — en moins de 7 jours grâce à notre formation OFFERTE « JavaScript Facile »

Que diriez-vous de Développer des Applications JavaScript Performantes — dès la semaine prochaine ?

TÉLÉCHARGEZ : Les codes sources du livre « JavaScript Facile » pour Créer VOS Applications — dès la semaine prochaine !

Cliquez ici pour tout recevoir >>