Biblioteca SceneLib¶
Biblioteca SceneLib¶
Biblioteca que contém funções relacionadas ao Scene 3/Tabuleiro de combate do RRPG
Todas as funções estão contidas na unidade "scene.lua".
Exemplo de uso:
| -- Primeiro, é necessário usar a unidade "scene.lua" require("scene.lua"); -- Agora é possível acessar as funções da biblioteca SceneLib.FUNCAO_DA_BIBLIOTECA(Parametro1, Parametro2, ...); |
|---|
Funções da biblioteca SceneLib¶
| function SceneLib.getLoadedScenes() |
|---|
Retorna um array de Scenes que estão rodando no RRPG no momento.
Retorno:
- Array (tabela lua indexada de 1 a #tabela) de objeto Scene
| function SceneLib.registerPlugin(attachCallback) |
|---|
Registra um plug-in de scene no RRPG.
Parâmetros:
- attachCallback - Uma função que será invocada para cada Scene rodando ou que vier a ser carregado. Esta função recebe dois parâmetros na seguinte ordem: scene (um objeto Scene) e attachment (um objeto ScenePluginAttachment) representando, respectivamente, o scene o qual o plug-in deve instalar e um objeto que identifica esta ligação entre o plug-in e o scene.
Retorno:
- Um identificador do plug-in registrado que poderá ser utilizado posteriormente como parâmetro para a função SceneLib.unregisterPlugin para desregistrá-lo.
Observações:
- Um pacote .rpk (plugin SDK 3) pode instalar mais de um Plug-in de Scene.
- Um plug-in de scene pode existir mesmo quando não há nenhum Scene rodando no RRPG, não tem problema.
- Um plug-in de scene pode se anexar a mais de 1 scene ao mesmo tempo! A função "attachCallback" será chamada uma vez para cada Scene existente e uma instância do objeto ScenePluginAttachment será criada para representar cada uma desta ligação "plugin x scene".
- Assim como um plug-in pode se anexar a vários scenes, um scene pode estar anexado a vários plug-ins. É uma relação N:N (leia-se: N para N).
Exemplo de um plug-in simples que apenas exibe uma mensagem quando se anexa a um 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); |
|---|
| function SceneLib.unregisterPlugin(pluginID) |
|---|
Desregistra um plug-in de scene do RRPG que fora previamente instalado pela função SceneLib.registerPlugin
Parâmetros:
- pluginID - O identificador do plugin que deseja desinstalar. Este valor é retornado pela função SceneLib.registerPlugin .
Observações:
- Normalmente não é preciso se preocupar em desregistrar plug-ins de scene pois o RRPG já faz este trabalho automaticamente quando o .rpk é descarregado da memória.
| function SceneLib.Math.newRotationMatrix(angle, pivoX, pivoY) |
|---|
Cria e retorna uma Matriz de rotação 2D
Parâmetros:
- angle - O ângulo da rotação em graus
- pivoX - A posição X do pivô da rotação
- pivoY - A posição Y do pivô da rotação
Retorno:
- A Matriz de rotação. (Um tipo de dados interno)
| function SceneLib.Math.transformPoint(x, y, matrix) |
|---|
Transforma a posição de um ponto ao multiplicá-lo por uma matriz.
Parâmetros:
- x - A posição X do ponto
- y - A posição Y do ponto
- matrix - Uma matriz de transformação.
Retorno:
- x - A nova posição X
- y - A nova posição Y
| function SceneLib.Math.rotatePoint(x, y, angle, pivoX, pivoY) |
|---|
Rotaciona um ponto.
Parâmetros:
- x - A posição X do ponto
- y - A posição Y do ponto
- angle - O ângulo da rotação em graus
- pivoX - A posição X do pivô da rotação
- pivoY - A posição Y do pivô da rotação
Retorno:
- x - A nova posição X
- y - A nova posição Y
Created with the Personal Edition of HelpNDoc: Modernize your help files with HelpNDoc's WinHelp HLP to CHM conversion tool