Pracuję nad grafiką dla małej gry. Grafika będzie SVG i będzie głównie oparte na kafelkach (pomyśl o Legend of Zelda: Link to the Past for SNES). Narysowałem małą trawiastą płytkę i chciałbym skopiować ten NxM razy na całe pole. Robiąc to w Inkscape lub innym narzędziu do edycji SVG GUI, powstaje plik o wielkości ponad 3,5 MB, większy niż 32-bitowa mapa bitowa o tych samych wymiarach.SVG: Czy mogę odwołać się do tego samego elementu/grupy/ścieżki zamiast kopiować go wiele razy?
Chciałbym wiedzieć, czy możliwe jest zdefiniowanie jakiegoś rodzaju "kafelka trawy", a zamiast kopiowania go do każdego miejsca w moim polu, wystarczy odwołać się do niego z odpowiednimi współrzędnymi. Zdaję sobie sprawę, że nadal spowoduje to, że scena załaduje taką samą ilość pamięci po załadowaniu, ale będzie to oznaczać o wiele mniejsze pliki do przechowywania na dysku, i mam nadzieję, że będzie to oznaczać łatwiejszą edycję, ponieważ w tym przypadku, jeśli chcę zmienić, na przykład kolor mojej trawy, muszę tylko zmienić mój obiekt archetypu, zamiast dokonać zmiany, a następnie ponownie skopiować nowy kafelek na całe pole.
Zrobiłem około pół tuzina różnych wyszukiwań różnych słów kluczowych, które moim zdaniem mogły pomóc, ale nic nie wydaje się robić tego, czego szukam. Myślałem o użyciu atrybutu "xlink: href", ponieważ widzę, że jest on używany w tagach do zdefiniowania najpierw palety kolorów, a następnie odwołuje się do niej później w oddzielnym znaczniku zawierającym dane transformacji.
Próbowałem przy użyciu coś takiego:
<path id="grassyPatch" d="M 3.3310392e-7,608 31.993091,624 63.986183,608 31.993091,592 z" style="..." />
A następnie skopiować go z czymś takim:
<path id="grass-copy1" xlink:href="#grassyPatch" transform="translate(32,-32)" />
<path id="grass-copy2" xlink:href="#grassyPatch" transform="translate(32,-64)" />
itp, aby skopiować go kilka razy, aby nowy lokalizacje. Doceń, jeśli ktoś może dać mi znać, jeśli to możliwe. Na razie nie mam nadziei, więc jeśli wiesz, że to jest niemożliwe, proszę daj mi znać, aby móc przestać tracić czas.
Dzięki!
Pamiętaj także, że SVG to otwarty standard! [Tutaj] (http://www.w3.org/TR/SVG10/) jest dokładną * oficjalną * specyfikacją formatu. To naprawdę nie jest takie trudne do odczytania; podobnie jak dokumentacja API dla formatu pliku. – ulidtko