Я работаю над некоторой графикой для небольшой игры. Графика будет SVG и будет в основном основанной на плитке (подумайте Легенда о Zelda: Link to the Past для SNES). Я нарисовал небольшую плитку из травы и хотел бы скопировать этот NxM раз по всему полю. Выполнение этого в Inkscape или другом инструменте редактирования SVG для SVG приводит к тому, что файл размером более 3,5 Мбайт больше, чем 32-разрядная растровая карта того же размера.
Я хотел бы знать, можно ли определить какой-либо объект "травяной черепицы", и вместо того, чтобы копировать его на каждое место в моей области, просто ссылайтесь на него с соответствующими координатами. Я понимаю, что это все равно приведет к тому, что на сцену будет загружен одинаковый объем памяти, но это будет означать гораздо меньшие файлы для хранения на диске, и, надеюсь, это будет означать облегчение редактирования, поскольку в этом случае, если я хочу изменить, например, цвет моей травы, мне нужно изменить объект архетипа вместо того, чтобы внести изменения, а затем снова скопировать новую плиту по всему полю.
Я сделал около полудюжины различных поисков для различных ключевых слов, которые, как я думал, могут помочь, но ничего похожего не делает, что я ищу. Я думал использовать атрибут "xlink: href", поскольку, как я вижу, это используется в тегах, чтобы сначала определить цветовую палитру, а затем ссылаться на нее позже в отдельном теге, содержащем данные преобразования.
Я попытался использовать что-то вроде:
<path id="grassyPatch" d="M 3.3310392e-7,608 31.993091,624 63.986183,608 31.993091,592 z" style="..." />
И затем скопировать его с чем-то вроде:
<path id="grass-copy1" xlink:href="#grassyPatch" transform="translate(32,-32)" />
<path id="grass-copy2" xlink:href="#grassyPatch" transform="translate(32,-64)" />
и т.д.. чтобы скопировать его несколько раз в новые места. Цените, если кто-нибудь может сообщить мне, если это возможно. На данный момент я не надежду, поэтому, если вы также знаете, что это невозможно, пожалуйста, дайте мне знать, чтобы я мог перестать тратить свое время.
Спасибо!