JeuWeb - Crée ton jeu par navigateur
[SVG] Image mapping ultra-répétitif - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [SVG] Image mapping ultra-répétitif (/showthread.php?tid=5751)

Pages : 1 2


RE: [SVG] Image mapping ultra-répétitif - Maz - 18-10-2011

J'ai réussi à faire quelque chose de viable en séparant mes "path" de mes "g":

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg externalResourcesRequired="true" width="500" height="500" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" onload="init(evt)">
<defs>
<title>Astar: carte à cases hexagonales orientées verticalement</title>
<image id="grass" width="38.64" height="29.32" xlink:href="/assets/grass.svg" />
<image id="water" width="38.64" height="29.32" xlink:href="/assets/water.svg" />
<image id="darkgrass" width="38.64" height="29.32" xlink:href="/assets/darkgrass.svg" />
</defs>
<g id="map" usemap="#basic_tile" >
<g class="tuile" name="1" id="x:0y:0">
<use xlink:href="#darkgrass" x="253.91472899999832" y="4.668907277118108" />
<text fill="white" visibility="hidden" dx="5" dy="17" class="multi-line">
<tspan>0,0:</tspan>
<tspan dy="1em">Non découvert</tspan>
</text>
</g>
<g class="tuile" name="2" id="x:0y:1">
<use xlink:href="#darkgrass" x="229.41983157216654" y="16.916355991034" />
<text fill="white" visibility="hidden" dx="5" dy="17" class="multi-line">
<tspan>0,1:</tspan>
<tspan dy="1em">Non découvert</tspan>
</text>
</g>
<path name="1" d="M259.09172899999834 7.2579072771181075 l19.319 -2.588 l14.143 7.070 l-5.178 9.66 l-19.318 2.588 l-14.143 -7.071 Z" />
<path name="2" d="M234.59683157216654 19.505355991033998 l19.319 -2.588 l14.143 7.070 l-5.178 9.66 l-19.318 2.588 l-14.143 -7.071 Z" />
</g>
</svg>

ça me déplaît car je dois exécuter deux fois la même boucle et que je dois passer par des attribut "name" qui ne passeront probablement pas au validateur W3C, mais ça fonctionnes, donc en attendant de trouver la solution miracle, je ranges dans la catégorie "à revenir dessus".

Edit: j'ai réussi à n'utiliser qu'une seule boucle grâce a un subterfuge de ruby (j'utilise un "yield" que je remplis dans la boucle, que j'affiches ensuite en dehors de la boucle), si un rubyman (ne pas confondre avec le sport) passes dans les parages j'aimerais savoir si ça consommes "de trop".