Objeto Scene

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

Objeto Scene

O Objeto Scene representa um "tabuleiro de combate" aberto pelo usuário e é a instância principal de um Scene e, através deste objeto, o programador consegue acessar todas as propriedades do mesmo.


O programador não consegue instanciar um "Objeto Scene" através do SDK 3, mas: 


Herança

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

Características

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

Propriedades e atributos

Propriedade

Tipo

Descrição

worldWidth

Double

Define a LARGURA do tabuleiro de combate. O valor desta propriedade contem o valor em Métrica do Mundo Scene.


worldHeight

Double

Define a ALTURA do tabuleiro de combate. O valor desta propriedade contem o valor em Métrica do Mundo Scene.


worldMetricName

String

Define o nome da métrica do mundo que é usada por este scene.


Exemplo: "m", "km", "cm", etc..


Exemplo2: supondo que a propriedade worldWidth = 60 e worldMetricName = "km", intepreta-se que tabuleiro possui uma largura de 60 quilômetros.


bkgColor

String de Color

Define a cor de fundo do tabuleiro.


Exemplo: "white", "black", "#FFDE05"


bkgImageURL

String

Contém a URL da imagem/bitmap que será renderizada como fundo do tabuleiro.


Este valor:

  • Pode ser um endereço de internet (exemplo: “http://xxxx.com.br/a.png”) 
  • Pode ser o caminho de um arquivo contido no pacote do plugin.
  • Pode ser um arquivo que se encontra no HD Virtual do plugin instalado.


workingLayer

Enumerado:

  • "background"
  • "objects"
  • "tokens"


Define qual em que camada do scene o usuário está trabalhando.


"map" - O usuário está trabalhando na camada Background


"objects" - O usuário está trabalhando na camada Objetos


"tokens" - O usuário está trabalhando na camada Tokens.


Este é um valor local e não é compartilhado com os outros usuários que estão visualizando o mesmo scene.


Saiba mais sobre as camadas em: As camadas do tabuleiro


viewport

Objeto SceneViewport

(Somente Leitura) Objeto viewport do Scene. Objeto que contém propriedades sobre a "tela" do Scene, como "Qual região do scene o usuário está vendo", "Qual o zoom que o usuário aplicou no tabuleiro?", etc..


grid

Objeto SceneGridLayer

(Somente Leitura) Objeto que contém características, informações e utilitários a respeito da GRID do scene.


items

Objeto SceneGraphicItemList

(Somente Leitura) Objeto que reúne os itens visuais do tabuleiro como tokens.


fogOfWar

Objeto SceneFogOfWar

(Somente Leitura) Objeto que reúne informações e operações com o FogOfWar/Névoa de Guerra do Tabuleiro de combate.


isGM

Boolean

(Somente Leitura) True se o usuário atual é mestre deste scene ou false.


isViewingAsGM

Boolean

True se o usuário atual for mestre e estiver visualizado como mestre do scene.


O usuário atual pode ser mestre mas desejar ver como os jogadores estão enxergando o scene, então isGM = true e isViewingAsGM = false.


isViewingWalls

Boolean

True se o usuário atual for mestre e estiver visualizado as paredes/áreas opacas do tabuleiro.


currentUserID

String

(Somente Leitura) Contém o login do usuário atual que está utilizando o Scene.


renderAsPlayer

Boolean

(Somente Leitura) Uma propriedade bem peculiar e mais difícil de explicar. Algumas vezes, mesmo quando "isGM" é true e "isViewingAsGM" é true, o tabuleiro deve ser renderizado como "visualizando como jogador".


Esta propriedade foi feita inicialmente pensando na integração do Firecast com o programa "OBS Studio" para streaming. Enquanto o mestre está visualizando o tabuleiro como GM, o tabuleiro deve ser renderizado como jogador para o "OBS Studio".




Métodos

Método

Descrição

scene:newTransaction()

Cria um NodeTransaction que poderá ser utilizado para gerenciar as mudanças feitas localmente no Scene.


Retorna:

  • Um objeto NodeTransaction que poderá ser utilizado em scene:pushTransaction()


scene:pushTransaction(transaction)

Ativa uma transação para controlar mudanças no Scene.


Parâmetros:


Observações:

  • Após ativar uma transação, todas as alterações que ocorrerem no Scene serão mantidas localmente e não serão compartilhadas automaticamente com os outros usuários. Você deverá controlar o que acontecerá com estas mudanças ao invocar "transaction:rollback()" se quiser desfazê-las ou "transaction:commit()" para confirmá-las e compartilhar-lhas com os outros usuários.
  • Para cada chamada de scene:pushTransaction(), deve haver uma chamada de scene:popTransaction().


scene:popTransaction()

Desativa a última transação ativada no Scene pela função scene:pushTransaction()


Observações:

  • Para cada chamada de scene:pushTransaction(), deve haver uma chamada de scene:popTransaction().
  • Se antes de chamar pushTransaction o Scene já estava sendo controlado por alguma transação, esta transação é restaurada.
  • Apenas invocar este método não é o suficiente para realizar o controle das mudanças. Você o invocar o método "rollback()" da transaction se quiser desfazer as mudanças capturadas ou invocar o método "commit()" da transaction para confirmar e compartilhar as mudanças capturadas.



scene:broadcastMessage(messageId, message [, loopBack])

Envia uma mensagem a todos os outros usuários que estão com o scene aberto.


Parâmetros:

  • messageId - Uma cadeia de caracteres contendo a identificação da mensagem.
  • message - A mensagem a ser transmitida. Aqui são aceitos textos, tabelas lua, números e booleanos.
  • (OPICIONAL) loopBack - Informa se quer que esta mensagem seja retransmitida para você mesmo. Valor padrão: false



Observações:

  • A mensagem enviada é entregue a todos os outros usuários conectados no scene.
  • Para receber as mensagens recebidas, o usuário destinatário deve ter previamente invocado a função scene:newBroadcastListener


scene:newBroadcastListener(messageId, callback)


Cria uma escuta de mensagens para receber mensagens postadas pela função scene:broadcastMessage 


Parâmetros:

  • messageId - Uma cadeia de caracteres contendo a identificação das mensagens que deseja receber. Deve ser igual ao messageId usado na função scene:broadcastMessage.
  • callback - Uma função que será invocada ao receber mensagens. Esta função recebe três parâmetros na seguinte ordem:
    • sender - Cadeia de caracteres contendo o login do usuário que enviou a mensagem
    • messageId - Cadeia de caracteres contendo a identificação da mensagem recebida
    • message - A mensagem que foi postada.


Retorno:

  • Retorna um objeto representando o Listener.


Observações:

  • Importante: Mantenha referência ao objeto retornado por esta função enquanto quiser que a escuta esteja ativa. Se o coletor de lixo LUA coletar este objeto, a escuta é destruída e a função callback não será mais invocada.
  • Se quiser destruir a escuta imediatamente, invoque a função destroy do objeto retornado.... obj:destroy();


scene:sendDelayedUpdates()


Force the scene to transmit all the pending delayed updates caused by the network transfer optimization



Eventos

Nome do evento

Descrição

onWorkingLayerChange

Evento que é chamado quando a propriedade workingLayer for alterada.


onGMStateChange

Evento que é chamado quando as propriedades isGM, isViewingAsGM ou isViewingWalls mudarem.



Exemplos

Exemplo 1 - Um Plugin de Scene que, ao se anexar a um tabuleiro, exibe uma mensagem com algumas características do Scene.


require("scene.lua");

require("dialogs.lua");

 

SceneLib.registerPlugin(

    function (scene, attachment)           

        showMessage("Plugin anexado a um tabuleiro de tamanho " ..

                    scene.worldWidth .. scene.worldMetricName .. " x " ..

                    scene.worldHeight .. scene.worldMetricName ..

                    " de cor de fundo ".. scene.bkgColor);

    end);


Created with the Personal Edition of HelpNDoc: Add an Extra Layer of Security to Your PDFs with Encryption