tutorial-03: gameplay

This commit is contained in:
Lephenixnoir 2020-12-23 00:15:30 +01:00
parent 433bab34fc
commit c6242692a5
Signed by: Lephenixnoir
GPG Key ID: 1BBA026E13FC0495
3 changed files with 22 additions and 0 deletions

View File

@ -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]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

After

Width:  |  Height:  |  Size: 284 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB