SVG
Um gráfico vetorial é um desenho descrito em XML que o jogo transforma em imagem no tamanho que você pedir. Diferente de uma textura pronta, ele pode ser reescrito em tempo de execução — trocar uma cor, mudar um número, redesenhar uma barra — e volta a ser rasterizado com o novo conteúdo.
Estas 6 funções existem somente no cliente. Chamá-las de um script de servidor resulta em erro de valor nulo.
svgCreate devolve um elemento: ele funciona com isElement, destroyElement e é aceito onde as funções de desenho pedem uma imagem.
O ciclo completo
Seção intitulada “O ciclo completo”Criar → alterar → usar. Este é o caminho inteiro em um exemplo só:
-- 1. CRIAR: carrega o desenho de um arquivo do resource, com 256x256 pixelslocal escudo = svgCreate(256, 256, "imagens/escudo.svg")if not escudo then return end
-- 2. ALTERAR: pega a árvore XML, muda a cor de um círculo e devolvelocal raiz = svgGetDocumentXML(escudo)local circulo = xmlFindChild(raiz, "circle", 0)if circulo then xmlNodeSetAttribute(circulo, "fill", "#00ff88") svgSetDocumentXML(escudo, raiz)end
-- 3. USAR: desenha como qualquer outra imagemaddEventHandler("onClientRender", root, function() dxDrawImage(20, 20, 256, 256, escudo)end)O passo 2 pode se repetir quantas vezes você quiser, inclusive durante o jogo. Cada alteração faz o gráfico ser redesenhado.
svgCreate Cria um gráfico vetorial.
svgGetDocumentXML Devolve a árvore XML do gráfico para você ler ou alterar.
svgSetDocumentXML Aplica uma árvore XML ao gráfico e manda redesenhar.
svgGetSize Devolve o tamanho de rasterização do gráfico.
svgSetSize Muda o tamanho em que o gráfico é rasterizado.
svgSetUpdateCallback Define — ou remove — a função chamada toda vez que o gráfico é redesenhado.