Sphinx-Minimap

Sphinx-Minimap

Comme tous mes plugins, ce script est publié sous licence CC BY 4.0.

En ce moment, j’ambitionne de créer un système de donjon aléatoire dont l’idée m’est venue en jouant à Pokémon Donjon Mystère. Ce système se compose en réalité de deux systèmes distincts bien que liés : la génération de donjon aléatoire bien sûr, mais également une minimap qui se découvre au fur et à mesure de l’exploitation de chaque carte (étage du donjon).

Aussi j’ai commencé par le second point, que j’ai développé comme un système à part entière. Et c’est donc mon système de minimap que je vous propose de découvrir aujourd’hui.

Installation

Pour utiliser ce plugin, vous allez tout d’abord devoir installer mon polyfill. C’est un plugin tout simple contenant des fonctions que j’utilise ca et là dans certains de mes plugins :

Et maintenant voici le script de mon plugin Sphinx-Minimap :

Et voilà, le plugin est fonctionnel.

Utilisation

Et voilà, le plugin est fonctionnel. Mais il vous reste à le prendre en main. Rassurez-vous, ce n’est pas si compliqué que ca, et nous allons le voir dès maintenant.

Commençons par les paramètres du plugin :

  • defaultDisplay : Booléen. S’il est sur on, affiche la minimap par défaut sur toutes les cartes, sauf celles sur laquelle la minimap est désactivée. S’il est sur off, la minimap ne sera affichée que sur les cartes qui seront configuré pour.
  • tileSize : Nombre entier compris entre 4 et 16. C’est la taille d’un carreau sur la minimap. Plus ce nombre est grand, plus la minimap occupera d’espace. Inversement, plus ce nombre est petit, moins les détails de la minimap seront visibles. Par défaut, je recommande de tester chaque carte avec une taille de 8 (8×8 px par tile).
  • playerColor : Couleur du point qui représente le joueur sur la minimap. Sont autorisés les codes couleur hexadécimaux à 3 ou 6 caractères ou encore les couleurs nommées CSS.
  • groundColor : Couleur du sol, et plus généralement des tiles praticables découverts sur la minimap. Sont autorisés les codes couleur hexadécimaux à 3 ou 6 caractères ou encore les couleurs nommées CSS. Si un tile n’est passable que par certains côtés, le tile sera de cette couleur, mais un liserai de couleur du mur sera présent sur les côtés non passables.
  • wallColor : Couleur des mur, et plus généralement des tiles impassables de la carte. Sont autorisés les codes couleur hexadécimaux à 3 ou 6 caractères ou encore les couleurs nommées CSS. A noter que c’est également cette couleur qui est utilisée comme couleur de fond de la minimap pour toute section non découverte.
  • alpha : Nombre décimal compris entre 0,00 et 1,00. Degré d’opacité de la minimap. Plus cette valeur sera élevée, plus la minimap sera opaque. A noter que les points représentant les events et le joueur ne sont pas affectés par cette valeur (leur opacité est de 1). Seuls les murs et le sol le sont.

Méta-balises des cartes

<minimap> : Si le paramètre defaultDisplay est sur off, affiche la minimap sur la carte courante.

<no-minimap> : Si le paramètre defaultDisplay est sur on, désactive la minimap pour la carte courante.

<minimap-size:LARGEUR HAUTEUR> : Où LARGEUR est la largeur de la minimap exprimée en tiles, et où la HAUTEUR est la hauteur de la minimap exprimée en tiles aussi. Affiche une portion de la minimap, pour qu’elle occupe moins de place (utile sur les grosses maps).

<minimap-discovered:LEVEL> : Où LEVEL est « nothing », « events » ou « map ». Définit le niveau de détails que le joueur verra en arrivant sur la carte. Le niveau « map » affichera la structure de la carte ainsi que la position des events marqués. C’est le comportement par défaut si aucun réglage minimap-discovered n’est renseigné. Le niveau « events » affichera la position des events marqués, mais la structure de la map ne sera affichée qu’au fur et à mesure de l’exploration de la carte (voir ci-après). Le niveau « nothing » n’affichera rien au départ, et révèlera la structure de la carte et la position des events marqués dans les zones explorées.

Comment marche l’exploration de la carte pour l’affichage sur la minimap

Sauf si la carte est réglée pour tout afficher, ou plus précisément si aucun réglage n’affirme le contraire puisque c’est le comportement par défaut, le joueur ne découvrira la structure de la carte (et éventuellement les events) qu’au fur et à mesure de son exploration.

Cette fonctionnalité est prévu à la base pour des cartes de type donjon, composées de salles plus ou moins carrées ; une salle trop complexe pourrait ne pas être détectée complètement en fonction de la position du joueur – dans ce cas je vous recommande de tester l’affichage de la minimap pour votre carte pour vous faire une idée ; et reliées entre elles par des couloirs d’un tile de large. En entrant dans une salle, toute la structure de la salle est révélée sur la minimap. Dans un couloir, seul les tiles autour du joueur sont révélés.

La définition de salle, telle qu’exploitée par ma minimap, est assez délicate à expliquer. En fait, j’explore toutes les cases autour du joueur jusqu’à trouver une case qui n’aurait que par 2 cases passables ou moins sur les 8 autour. Une case entourée par moins de 2 cases passables est considérée comme un couloir.

Ce concept pourrait ne pas être très clair, aussi je vous invite à tester la démonstration de ce système sur mon site de démonstration officiel : https://demos.rmmv.genie23.fr/#minimap.

Marquer un évènement sur la minimap

Jusque là, sauf si vous avez déjà épluché la démo du système, vous aurez remarqué que seule la position du joueur est révélée sur la minimap. Et vous vous demandez surement comment marquer un event pour qu’il apparaisse aussi sur la minimap. Par défaut, un event ne sera pas affiché. Il faut ajouter le commentaire suivant : minimap:COULEUR, où COULEUR est une couleur au format CSS (liste et format de couleurs CSS : https://developer.mozilla.org/fr/docs/Web/CSS/Type_color).

Si votre event a plusieurs pages, sachez qu’il peut changer de couleur en fonction de la page (ce n’est pas obligatoire, mais c’est possible). Dans tous les cas, pour que votre event reste affiché sur la minimap lorsqu’il change de page, il faut bien penser à mettre le commentaire sur chaque page. Si une page d’un event ne doit pas s’afficher sur la minimap, il suffit de ne pas lui mettre de commentaire.

Et voilà !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

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