Ich arbeite an einigen Grafiken für ein kleines Spiel. Die Grafik wird SVG sein und wird hauptsächlich auf Kacheln basieren (denke Legend of Zelda: Link zur Vergangenheit für SNES). Ich habe ein kleines Grasplättchen gezeichnet und möchte dieses NxM mal über ein ganzes Feld kopieren. Wenn Sie dies in Inkscape oder einem anderen GUI-SVG-Bearbeitungswerkzeug tun, ergibt dies eine Datei, die mehr als 3,5 MB groß ist, größer als eine 32-Bit-Bitmap mit denselben Abmessungen.SVG: Kann ich auf dasselbe Element/dieselbe Gruppe/denselben Pfad verweisen, anstatt es mehrmals zu kopieren?
Ich würde gerne wissen, ob es möglich ist, ein "Gras-Kachel" -Objekt irgendeiner Art zu definieren, und anstatt es auf jeden Punkt in meinem Feld zu kopieren, referenziere es einfach mit den entsprechenden Koordinaten. Ich stelle fest, dass dies immer noch dazu führt, dass die Szene beim Laden die gleiche Menge an Speicher aufnimmt, aber es bedeutet viel kleinere Dateien für die Speicherung auf der Disc, und hoffentlich wird es einfacheres Editieren bedeuten, denn in diesem Fall, wenn ich ändern möchte, zum Beispiel, die Farbe meines Grases, ich muss nur mein archetypisches Objekt ändern, anstatt die Änderung vorzunehmen und dann die neue Kachel über das ganze Feld zu kopieren.
Ich habe etwa ein halbes Dutzend verschiedene Suchen nach verschiedenen Schlüsselwörtern durchgeführt, von denen ich dachte, dass sie helfen könnten, aber nichts scheint zu tun, wonach ich suche. Ich dachte, das 'xlink: href' Attribut zu verwenden, wie ich sehe, wird dies in den Tags verwendet, um zuerst die Farbpalette zu definieren, und dann später in einem separaten Tag, das die Transformationsdaten enthält.
Ich habe versucht, etwas mit wie:
<path id="grassyPatch" d="M 3.3310392e-7,608 31.993091,624 63.986183,608 31.993091,592 z" style="..." />
Und dann, es zu kopieren mit so etwas wie:
<path id="grass-copy1" xlink:href="#grassyPatch" transform="translate(32,-32)" />
<path id="grass-copy2" xlink:href="#grassyPatch" transform="translate(32,-64)" />
etc., um es mehrmals neu zu kopieren Standorte. Ich würde es schätzen, wenn mir jemand sagen könnte, ob das möglich ist. Ich hoffe nicht so weit, also wenn du es auch weißt unmöglich, lass es mich auch wissen, damit ich aufhören kann meine Zeit zu verschwenden.
Danke!
Vergessen Sie auch nicht, dass SVG ein offener Standard ist! [Hier] (http://www.w3.org/TR/SVG10/) ist die genaue, * offizielle * Spezifikation des Formats. Es ist wirklich nicht so schwer zu lesen; ähnlich wie eine API-Dokumentation für ein Dateiformat. – ulidtko