Pular para o conteúdo

SVG

Cliente

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.

Criar → alterar → usar. Este é o caminho inteiro em um exemplo só:

-- 1. CRIAR: carrega o desenho de um arquivo do resource, com 256x256 pixels
local 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 devolve
local 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 imagem
addEventHandler("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.