Objeto SceneCanvas

.html ›› .html ›› .html ››
Parent Previous Next

Objeto SceneCanvas

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.


Herança

O objeto SceneCanvas herda de SceneBaseObject e possui também todas as suas características.


Características

Além das características herdadas, o objeto SceneCanvas também possui as seguintes características:

Propriedades e atributos

Propriedade

Tipo

Descrição

opCount

Integer

(Somente Leitura) Contém a quantidade de operações gráficas que este Canvas possui.



Métodos

Método

Descrição

canvas:getOp(index)

Retorna a operação gráfica de índice passado por parâmetro.


Parâmetros:

    • index - Um número inteiro informando qual operação gráfica do canvas você deseja obter. Este valor deve estar entre 0 e  "opCount" - 1


Retorno:


Observação: 

    • O item retornado pode ser uma operação gráfica de bitmap/imagem (objeto SceneDrawingOpBitmap) ou uma operação gráfica de caminho/formas/polígonos (objeto SceneDrawingOpPath). Para saber qual é o tipo da operação gráfica, verifique a propriedade objectType do objeto retornado.


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:

    • name - Um texto, o nome da operação gráfica que está procurando neste Canvas/Item do Scene.


Retorno:

    • Se o Scene encontrar uma operação gráfica cuja propriedade name for igual ao texto informado, retorna um objeto SceneDrawingOp representando a operação gráfica localizada.
    • Se o Scene não encontrar, retorna nil.



Observação: 

    • O item retornado pode ser uma operação gráfica de bitmap/imagem (objeto SceneDrawingOpBitmap) ou uma operação gráfica de caminho/formas/polígonos (objeto SceneDrawingOpPath). Para saber qual é o tipo da operação gráfica, verifique a propriedade objectType do objeto retornado.


canvas:clear()

Limpa o canvas excluindo todas as operações gráficas contida nele.




Eventos

Nome do evento

Descrição





Exemplos

Exemplo 1 - Um plug-in que adiciona/remove uma marca personalizada quando o usuário clica nos itens do scene.


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.= 0.25;

                    opGrafica.width = 0.3;

                    opGrafica.= -0.1;

                    opGrafica.height = 0.3;

                    opGrafica.= 10;                      

                else

                    -- Vamos apagar nossa operação gráfica previamente criada

                    opGrafica:delete();

                end;

            end;           

        end;

               

    end);




Item sem a marca

Item com a marca


Exemplo 2 -




Created with the Personal Edition of HelpNDoc: From Word to ePub or Kindle eBook: A Comprehensive Guide