Mon premier projet pégagogique : PAC-MAN ! - L'école en ligne des programmeurs de jeux vidéo

Mon premier projet pégagogique : PAC-MAN !

Mon premier projet pégagogique : PAC-MAN !
Maraudeur Il y a 2 semaines Premium Infinity4

Bonjour,

Je débute absolument en programmation, je suis membre depuis environ 3 semaines, j’ai eu un Amstrad CPC en 1990, et à l’époque, je n’avais pas dépassé le :

10 PRINT “Maman je t’aime”
RUN

J’ai donc 40 ans et j’aime les défis, je trouve que la vie sans objectif, sans projet, c’est long  :-)… Mon objectif ici est de m’amuser, développer des compétences, entretenir mon génialissime cerveau, et pourquoi pas plus (si affinité) selon ma progression (sortir un (ou des) jeu(x) sur la gamme Amstrad…, ou autres opportunités un peu folle, on ne sait jamais ! Je suis français, mais j’habite Québec, il y a UbiSoft ici haha :-p )

J’ai suivi les ateliers starter et en attendant la Game jam, que je vais tenter, je me lance dans la programmation d’un clone de Pac-Man.
Très très classique, mais je pense aussi très formateur : il y a beaucoup de chose dans ce jeu :
– Affichage de map avec tilesheet, sprites animés, calcul des scores, des collisions, IA différenciée des fantômes, différents états de Pac-Man, des fantômes (normaux, bleus qui fuient, mangés…)

Autant de défis à relever, étapes par étapes

Je met en pratique les conseils de David, et des élèves sur Discord : se lancer, se sortir les doigts (se laver les mains vu où ils étaient), et coder.
C’est en forgeant qu’on devient forgeron, et c’est donc en codant qu’on devient codeur…

Cela fait 2 jours que je suis sur ce projet, et je peux vous dire que je bataille.
Chaque étape, chaque ligne de code, est un obstacle (j’exagère, mais à peine).

Je suis content de ma progression :

  •  J’ai réussi à faire (avec Tiled) la map du premier niveau, et à l’afficher avec un Quad (C’est une des notions que j’ai eu du mal à comprendre lors des ateliers. Elle est simple, mais en même temps pas tant que ça pour un débutant : créer le quad avec une double boucle, puis dessiner la map avec une autre double boucle, en utilisant les références contenus dans le quad. Des variables un peu partout, des [id], bref… J’ai réussi, mais il faudra que je le pratique encore quelque fois pour être capable de le faire sans aller fouiller dans mes notes.
  • J’affiche, et je déplace Pac-Man à une vitesse satisfaisante (en utilisant le delta time)

Mes prochains défis :

  • Faire changer le sprite de Pac-Man, pour l’instant, c’est toujours la même image que je déplace … Il y a 4 images par directions. Il faudra donc que je fasse varier l’image selon la direction, puis que je l’anime. Pour l’animation, vu que c’est une bouche qui s’ouvre et qui se ferme, il va falloir que je fasse monter, puis descendre le compteur ( 56,57,58,59,58,57,56… ) Et je ne sais pas encore comment faire ^^
  • Rendre certaines tuiles solides pour empêcher que Pac-Man traverse les murs.

Je sais que ces premières étapes sont les plus faciles, mais je vous assure que je galère… Vraiment rien n’est facile ou évident.

On compare souvent l’apprentissage d’un langage à l’apprentissage d’une langue, mais la grande différence, c’est qu’avec un anglais approximatif, tu arrives à te faire comprendre… En programmation, une virgule, un guillemet, une majuscule qui manque et l’ordinateur ne comprend plus rien !

Il y a une meilleure analogie que l’on pourrait faire, je pense : c’est avec les arts martiaux. Combien de ceintures blanches deviennent un jour ceinture noire ? Peut-être 1 sur 1 000. Les 999 ont abandonnés pour une raison ou pour une autre. Voilà. Il suffit de ne pas abandonner. Le secret, c’est l’opiniâtreté. La persévérance.

J’en ai, mais assez ? Seul l’avenir nous le dira !

Comments (4)

macfly

Salut,

Super projet pour démarrer^^
J’ai hâte de voir la suite!
Pour les animations de sprites ne te prends pas la tête. Si tu as 4 sprites pour chacune des 4 directions, tu peux par exemple te faire 4 tableaux contenant les 4 sprites dans ta table “pacman”.
Et tu te fais un compteur que tu fais varier de 1 à 4 dans l’update et qui te permet d’afficher successivement les 4 images et qui repart à 1 une fois le tableau parcouru (dès que la variable atteint 5 en fait).

Maraudeur

Oui, j’ai fais à peu près ça (pas tout à fait car il s’agit d’une tilesheet) et ça fonctionne, mais s’agissant d’une bouche qui s’ouvre et qui se ferme je voudrais pouvoir monter puis redescendre, puis remonter…
Je m’explique :
Acutellement, le sprite commence bouche fermée (56), puis monte, 57, 58, jusque 59 où sa bouche est ouverte au max, et il repasse directement à 56 (bouche fermée…)
J’aimerai qu’il fasse 56 57 58 59 58 57 56 57 58 59 etc…
Mais ce n’est pas ma priorité pour l’instant, l’animation reste correct même avec ce défaut ça ne choque pas.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Avatar
Salut c'est David. Est-ce que tu as une question sur la formation ?
Holler Box

Dialoguez avec les autres membres de la gamecodeur school.

Accédez maintenant à notre serveur Discord privé : Entraide, Game Jams, Partage de projets, etc.

Vous devez être membre de la Gamecodeur School Premium pour être autorisé à accéder au serveur.