O Objeto SceneCanvas representa como um item do Scene deve ser desenhado na tela do usuário e, no fundo, é uma lista de operações gráficas que devem ser executadas para compor a aparência de um item no tabuleiro.
O SceneCanvas de um item gráfico pode ser obtido através da propriedade "canvas" de um que herde de objeto SceneGraphicItem
A grande vantagem em utilizar o SceneCanvas é que as operações gráficas são persistidas no scene e serão executadas no tabuleiro de cada usuário, mesmo que algum não tenha instalado algum determinado plug-in.
O objeto SceneCanvas herda de SceneBaseObject e possui também todas as suas características.
Além das características herdadas, o objeto SceneCanvas também possui as seguintes características:
Propriedade |
Tipo |
Descrição |
opCount |
Integer |
(Somente Leitura) Contém a quantidade de operações gráficas que este Canvas possui. |
Método |
Descrição |
canvas:getOp(index) |
Retorna a operação gráfica de índice passado por parâmetro. Parâmetros:
Retorno:
Observação:
|
canvas:addBitmap() |
Adiciona uma operação gráfica de desenho de bitmap/imagem ao canvas. Parâmetros: Nenhum Retorno:
|
canvas:addPath() |
Adiciona uma operação gráfica de desenho de caminho/formas/polígonos ao canvas. Parâmetros: Nenhum Retorno:
|
canvas:addText() |
Adiciona uma operação gráfica de desenho de texto ao canvas. Parâmetros: Nenhum Retorno:
|
canvas:findByName(name) |
Localiza uma operação gráfica pelo seu nome. Parâmetros:
Retorno:
Observação:
|
canvas:clear() |
Limpa o canvas excluindo todas as operações gráficas contida nele. |
Nome do evento |
Descrição |
|
|
require("scene.lua");
SceneLib.registerPlugin( function (scene, attachment)
-- Manipular o evento OnMouseDown do Viewport
scene.viewport.onMouseDown = function(event) -- Usuário clicou no Scene -- Transformar as coordenadas de tela em métrica de mundo local worldX, worldY = scene.viewport:screenToWorld(event.x, event.y);
-- Localizar o item que o usuário clicou local item = scene.items:itemAtPoint(worldX, worldY);
if item ~= nil then -- Encontrou um item na posição clicada. local NOME_MINHA_MARCA = "MarcaExemplo";
-- Localizar uma operação gráfica neste item com o nosso nome local opGrafica = item.canvas:findByName(NOME_MINHA_MARCA);
if opGrafica == nil then --[[ A operação gráfica da minha marca ainda não existe neste token/item. Vamos criar ]]
opGrafica = item.canvas:addBitmap(); opGrafica.name = NOME_MINHA_MARCA; -- Abaixo, URL da imagem da nossa marca. opGrafica.url = "https://wiki.teamfortress.com/w/images/d/dd/Bleed_drop.png?t=20110425044341"; opGrafica.x = 0.25; opGrafica.width = 0.3; opGrafica.y = -0.1; opGrafica.height = 0.3; opGrafica.z = 10; else -- Vamos apagar nossa operação gráfica previamente criada opGrafica:delete(); end; end; end;
end); |
|
Item com a marca |
|
Created with the Personal Edition of HelpNDoc: From Word to ePub or Kindle eBook: A Comprehensive Guide