diff --git a/tutorials/03-des-portes-beaucoup-de-portes.txt b/tutorials/03-des-portes-beaucoup-de-portes.txt index a54d8d0..424b728 100644 --- a/tutorials/03-des-portes-beaucoup-de-portes.txt +++ b/tutorials/03-des-portes-beaucoup-de-portes.txt @@ -308,3 +308,25 @@ Et voilà, on peut maintenant se déplacer sur la map et les collisions sont fon [center][img]https://gitea.planet-casio.com/Lephenixnoir/mystnb/raw/branch/master/tutorials/gint-tuto-03-colliding-map.gif[/img] [i]Image 2 : Toujours pas de gameplay mais pour ma défense on s'en approche.[/i][/center] +[brown][b]Animation des tiles sur la map[/b][/brown] + +Là j'ai surtout codé le jeu sans apporter beaucoup de modifications. Le système d'animations que j'ai construit n'est pas lié spécifiquement au joueur et peut être utilisé pour à peu près n'importe quoi. + +Pour coder les mécaniques et gérer les animations, j'ai ajoutés dans la `struct game` un tableau d'informations dynamiques de tiles ; chaque tile qui peut changer d'état pendant le jeu a une entrée avec sa position, son état actuel et son animation. Au chargement du niveau, des infos dynamiques de tiles sont créées pour l'entrée, la sortie, les portes et les clés, avec les animations qui vont bien. ;) + +Les animations pour l'entrée et la sortie n'ont qu'une phase et émettent des sortes de particules régulièrement dans un sens qui suggère le rôle de la case. + +Les animations pour les portes sont un peu plus élaborées. Il y a quatre phases : porte fermée, porte en cours d'ouverture, porte ouverte, porte en cours de fermeture (et pareil pour les portes horizontales). La première et la troisième sont statiques (elles bouclent sur un unique frame), les deux autres affichent une succession de frames puis transitionnent vers leur phase statique naturelle. + +L'état dynamique est utilisé pour stocker la progression de chaque porte dans son cycle d'ouverture/fermetur et indiquer le cas particulier où une porte est bloquée par un joueur (si le joueur entre juste avant qu'elle n'essaie de se fermer). + +[brown][b]Premiers éléments de gameplay[/b][/brown] + +À ce stade je pense que le gameplay est clair pour vous. On veut traverser chaque niveau de son entrée vers sa sortie, mais il y a des portes partout et elles passent leur temps à s'ouvrir et se fermer. Et donc on tourne en rond en essayant de comprendre les cycles. :E + +Pour implémenter réellement le gameplay il suffit de faire avancer chaque porte d'une étape dans son cycle à la fin de chaque tour, et d'empêcher le jour de se déplacer sur une case où il y a une porte fermée. + +Et voici, chers lecteurs, le premier niveau de [b]Mystère noir et blanc[/b] ! :D + +[center][img]https://gitea.planet-casio.com/Lephenixnoir/mystnb/raw/branch/master/tutorials/gint-tuto-03-level-1.gif[/img] +[i]Image 3 : Si je vous spoile la solution y'a plus vraiment de mystère ![/i][/center] diff --git a/tutorials/gint-tuto-03-colliding-map.gif b/tutorials/gint-tuto-03-colliding-map.gif index d0aec5c..e26f735 100644 Binary files a/tutorials/gint-tuto-03-colliding-map.gif and b/tutorials/gint-tuto-03-colliding-map.gif differ diff --git a/tutorials/gint-tuto-03-level-1.gif b/tutorials/gint-tuto-03-level-1.gif new file mode 100644 index 0000000..02564e0 Binary files /dev/null and b/tutorials/gint-tuto-03-level-1.gif differ