**Language / Langue :** **FR** | [[en:yaml:imagemaps|EN]] ====== Image maps / Point & clic (YAML) ====== Les image maps transforment une image en zone interactive. L'auteur fournit deux fichiers : * une image visible, affichee au joueur ; * un masque PNG, ou chaque couleur plate correspond a une zone. La fonctionnalite est interactive sur web, desktop et export HTML5 standalone. Sur Discord et terminal, l'image reste affichee comme media/fallback lisible, sans interaction point & clic. ===== Inserer une image map ===== Dans un texte de salle ou dans un encadre HUD : texte: "[[#map:scene:https://cyril-fiesta.fr/jdr-bot/scenarios/images/showcase/taverne.png|https://cyril-fiesta.fr/jdr-bot/scenarios/images/showcase/taverne-masque.png]]" Format general : [[#map:id:image.png|masque.png]] * ''id'' identifie la map dans la salle. * ''image.png'' est l'image visible. * ''masque.png'' est l'image de masque : chaque couleur pleine represente une zone. ===== Declarer les zones ===== Les zones se declarent dans la salle avec la cle ''zones:'' puis l'id de la map. zones: scene: couleurs: - couleur: "#FF0000" clic: parler_barman highlight: true - couleur: "#0000FF" clic: examiner_salle survol-tooltip: "Regardez attentivement la salle..." highlight: true - couleur: "#00FF00" survol-tooltip: "Une sortie vers la rue." survol-event: observer_sortie Chaque entree de ''couleurs:'' associe une couleur du masque a une interaction. ===== Options de zone ===== * ''couleur:'' : couleur HTML du masque, au format ''#RRGGBB''. * ''clic:'' : id d'un evenement local declenche au clic. * ''survol-tooltip:'' : texte affiche dans une bulle au survol. * ''survol-event:'' : id d'un evenement local declenche au survol. * ''highlight: true'' : affiche la zone en surbrillance au survol. ===== Evenements associes ===== Les ids references par ''clic:'' ou ''survol-event:'' doivent correspondre a des evenements de la salle. evenements: - id: parler_barman texte: | Le barman grommelle :+n+ **? On commande ou on degage. ?** faire: "parle_barman.=.1" - id: examiner_salle texte: "La salle est basse de plafond et sent la biere eventee." - id: observer_sortie once: true texte: "L'air frais de la rue passe sous la porte." Les champs habituels restent disponibles : ''si:'', ''visible-si:'', ''grise-si:'', ''faire:'', ''vers:'', ''texte:'', ''texte-ko:'' et ''once:''. Les zones respectent les conditions portees par l'evenement reference. ===== once: zone ===== ''once: zone'' est utile quand une meme couleur du masque contient plusieurs zones separees. Chaque composante peut alors etre declenchee une fois par visite de salle. evenements: - id: toucher_bouteille once: zone texte: "Vous inspectez une bouteille vide." faire: "bouteilles.+.1" ===== Dans un HUD ===== Une image map peut rester affichee en permanence dans un encadre : encadre: - position: haut hauteur: 42 texte: "[[#map:scene:/scenarios/images/taverne.png|/scenarios/images/taverne-masque.png]]" Les textes d'evenements apparaissent alors dans le flux principal pendant que la scene reste cliquable. ===== Conseils ===== * Utiliser un masque PNG sans compression destructrice, avec des aplats nets. * Eviter les couleurs trop proches dans le masque. * Garder une zone par couleur quand c'est possible ; utiliser ''once: zone'' si une couleur represente plusieurs elements identiques. * Prevoir un choix classique de secours si la navigation depend entierement du point & clic. Voir aussi : [[fr:yaml:tooltips|Tooltips interactifs]], [[fr:yaml:elements-cliquables|Elements cliquables]], [[fr:yaml:hud|HUD]].