Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

Referência da API

Referência Completa da API

Também disponível em forma resumida dentro do Editor: image.png

Construtores de Ativos

Construtores criam os principais tipos de ativos usados pelo editor. Quando você atribui um a uma variável, o editor o reconhece e permite que você abra o editor de ativos correspondente com Ctrl+Click.

Função Descrição
Sprite(width, height) Cria um ativo sprite com as dimensões especificadas
Scene() ou Scene(name) Cria um ativo de cena
Audio() Cria um pequeno ativo de áudio estilo tracker
Object() ou Object(name) Cria um objeto de jogo

Métodos de Lista

Crie listas com [] ou [valor1, valor2, ...]. Leia e sobrescreva entradas com list[index], e itere com for (var i = 0; i < list.length(); i = i + 1).

Função Descrição
list.add(value) Adiciona um valor ao final da lista
list.length() Retorna o número de elementos na lista
list.remove(index) Remove o elemento no índice dado
list.clear() Remove todos os elementos da lista

Operadores

Operadores são pequenos símbolos que realizam cálculos comuns. O operador módulo é especialmente útil para fazer a repetição de temporizadores, índices, etapas de animação ou padrões repetitivos.

Operador Descrição
% Módulo. Retorna o resto após a divisão

Propriedades de Objetos

Objetos são as coisas que seu script geralmente move e altera durante o jogo. Estas funções leem ou atualizam a posição, sprite, comportamento de colisão, camada e tonalidade visual de um objeto.

Função Descrição
getX(obj) Retorna a posição X do objeto
setX(obj, x) Define a posição X do objeto
getY(obj) Retorna a posição Y do objeto
setY(obj, y) Define a posição Y do objeto
getVelocityX(obj) Retorna a velocidade X do objeto
setVelocityX(obj, vx) Define a velocidade X do objeto
getVelocityY(obj) Retorna a velocidade Y do objeto
setVelocityY(obj, vy) Define a velocidade Y do objeto
getName(obj) Retorna o nome do objeto
setName(obj, name) Define o nome do objeto
getSprite(obj) Retorna o sprite do objeto
setSprite(obj, sprite) Atribui um sprite ao objeto (reseta a animação para o quadro 0)
getLayer(obj) Retorna a camada de desenho do objeto
setLayer(obj, layer) Define a camada de desenho do objeto (maior = desenhado depois)
getTint(obj) Retorna a tonalidade como lista [r, g, b, a]
setTint(obj, r, g, b, a) Define a tonalidade de cor do objeto (0-255 cada)
getCollisionType(obj) Retorna o número do tipo de colisão
setCollisionType(obj, type) Define o tipo de colisão

Funções de Sprite

As funções de sprite permitem que o código inspecione ou modifique dados de pixels de sprite e velocidade de animação. A maioria dos jogos desenha sprites no editor, mas essas funções são úteis para efeitos procedurais, depuração ou mudanças simples em tempo de execução.

Função Descrição
fillSprite(sprite, r, g, b, a) Preenche todos os pixels de todos os quadros com uma cor RGBA sólida (0-255)
getPixel(sprite, frame, x, y) Retorna [r,g,b,a] do pixel em (x,y) no quadro dado, ou nulo se fora dos limites
setPixel(sprite, frame, x, y, r, g, b, a) Define a cor do pixel em (x,y) no quadro dado. Não faz nada se fora dos limites
getAnimationFPS(sprite) Retorna a velocidade de animação do sprite em quadros por segundo
setAnimationFPS(sprite, fps) Define a velocidade de animação do sprite em quadros por segundo

Funções de Animação

Funções de animação trabalham em objetos que usam sprites com múltiplos quadros. Use-as quando você quiser que o código inspecione ou force o quadro atual de animação.

Função Descrição
getFrame(obj) Retorna o índice do quadro atual de animação do objeto
setFrame(obj, frameIndex) Define o quadro de animação do objeto (reseta o timer)
getFrameCount(obj) Retorna o número de quadros no sprite do objeto

Funções de Transformação (Inversão/Rotação)

Funções de transformação alteram como o sprite de um objeto é desenhado sem editar o sprite em si. Elas são boas para reutilizar um sprite em múltiplas direções.

Função Descrição
getFlipX(obj) Retorna se o objeto está invertido horizontalmente
setFlipX(obj, flip) Define a inversão horizontal. true = invertido, false = normal
getFlipY(obj) Retorna se o objeto está invertido verticalmente
setFlipY(obj, flip) Define a inversão vertical. true = invertido, false = normal
getRotation(obj) Retorna a rotação do objeto em graus de 90 (0-3)
setRotation(obj, rot) Define a rotação de 90 graus: 0=0, 1=90, 2=180, 3=270 graus no sentido horário

Nota: Essas transformações são aplicadas apenas no momento da renderização. Elas não afetam caixas de colisão ou dados de pixels reais do sprite.

Tipos de Colisão

Tipos de colisão decidem como um objeto participa em checagens de colisão. Escolha o tipo com base no papel do objeto: paredes são geralmente estáticas, jogadores são geralmente dinâmicos, e pickups são frequentemente acionadores.

Constante Valor Descrição
COLLISION_NONE() 0 Sem detecção de colisão
COLLISION_STATIC() 1 Colisiones, mas não se move
COLLISION_DYNAMIC() 2 Colide e é empurrado para fora
COLLISION_TRIGGER() 3 Detecta colisão, mas não bloqueia

Funções de Cena

Funções de cena controlam qual cena está ativa, quais objetos estão dentro dela, e configurações globais da cena como a cor de fundo e gravidade. Elas também fornecem helpers de busca para encontrar objetos em posições ou por nome.

Função Descrição
addObject(scene, obj) Adiciona um objeto a uma cena
removeObject(scene, obj) Remove um objeto de uma cena
setScene(scene) Define a cena ativa
getScene() Retorna a cena ativa atual
resetScene(scene) Reseta a cena para seu estado inicial (como projetado no editor)
setBackgroundColor(scene, r, g, b) Define a cor de fundo da cena (RGB 0-255)
getBackgroundColor(scene) Retorna a cor de fundo como lista [r, g, b]
getGravityX(scene) Retorna o componente de gravidade X da cena
setGravityX(scene, gx) Define o componente de gravidade X da cena
getGravityY(scene) Retorna o componente de gravidade Y da cena
setGravityY(scene, gy) Define o componente de gravidade Y da cena (positivo = para baixo)
getObjectAt(scene, x, y) Retorna o primeiro objeto no ponto (x,y), ou nulo
getObjectsAt(scene, x, y) Retorna uma lista de todos os objetos no ponto (x,y)
getObjectsInBox(scene, x, y, w, h) Retorna todos os objetos sobrepostos à caixa
getObjectByName(scene, name) Encontra um objeto pelo nome, ou nulo se não encontrado
getObjectCount(scene) Retorna o número de objetos na cena
getAllObjects(scene) Retorna uma lista de todos os objetos na cena
isObjectInScene(scene, obj) Retorna verdadeiro se o objeto está na cena
getObjectsBySprite(scene, sprite) Retorna todos os objetos usando o sprite dado
getObjectsByCollisionType(scene, type) Retorna todos os objetos com o tipo de colisão dado

Reprodução de Áudio

Funções de reprodução de áudio iniciam e param ativos de áudio a partir de um script. playAudio() retorna um identificador de manuseio para que você possa depois parar ou checar aquela instância de reprodução específica.

Função Descrição
playAudio(audio) Inicia um ativo de áudio e retorna um identificador de manuseio de reprodução
stopAudio(handle) Para um manuseio de reprodução retornado por playAudio()
isAudioPlaying(handle) Retorna verdadeiro enquanto o manuseio de reprodução ainda estiver ativo

Funções de Tela

Funções de tela ajudam quando você precisa saber o tamanho da janela ou converter entre pixels de tela e posições do mundo. Isso é útil para mira de mouse, detecção de cliques e UI consciente da câmera.

Função Descrição
getScreenWidth() Retorna a largura da tela/janela em pixels
getScreenHeight() Retorna a altura da tela/janela em pixels
screenToWorld(screenX, screenY) Converte coordenadas de pixels de tela para coordenadas do mundo. Retorna [worldX, worldY]
worldToScreen(worldX, worldY) Converte coordenadas do mundo para coordenadas de pixels de tela. Retorna [screenX, screenY]

Modo de Janela

Controle o modo de janela para jogos exportados. Essas funções não têm efeito ao jogar no editor (o editor tem autoridade maior sobre o estado da janela).

Constante Valor Descrição
WINDOW_WINDOWED() 0 Modo janela regular
WINDOW_MAXIMIZED() 1 Janela maximizada (padrão)
WINDOW_FULLSCREEN() 2 Fullscreen sem borda
Função Descrição
getWindowMode() Retorna a constante do modo de janela atual
setWindowMode(mode) Define o modo de janela. Funciona apenas em jogos exportados

Exemplo:

func start() {
    // Define o modo de janela (WINDOW_MAXIMIZED é o padrão para jogos exportados)
    setWindowMode(WINDOW_MAXIMIZED())
}

Nota: Se setWindowMode() nunca for chamado em um jogo exportado, o padrão é WINDOW_MAXIMIZED.

Funções de UI

A UI usa uma resolução de espaço de tela virtual. O espaço de UI padrão é 100 x 100. O tamanho da fonte pode ser aumentado para widgets de texto subsequentes com uiPushFontSize(size) e restaurado com uiPopFontSize(). As cores das fontes podem ser empilhadas com uiPushFontColor(r, g, b[, a]), e as fills de elementos de UI podem ser empilhadas com uiPushElementColor(r, g, b[, a]). Como o resto da UI em modo imediato, essas sobreposições se aplicam enquanto constrói a UI do quadro atual. Se o tamanho empilhado for 0 ou menor, o motor usa dimensionamento automático.

Função Descrição
getUIResolutionX() Retorna a largura virtual atual da UI
setUIResolutionX(width) Define a largura virtual da UI usada para chamadas subsequentes da UI
getUIResolutionY() Retorna a altura virtual atual da UI
setUIResolutionY(height) Define a altura virtual da UI usada para chamadas subsequentes da UI
uiPushFontSize(size) Define uma escala de tamanho de fonte para o texto subsequente da UI. Valores <= 0 usam dimensionamento automático
uiPopFontSize() Remove a substituição mais recente do tamanho da fonte da UI
uiPushFontColor(r, g, b) ou uiPushFontColor(r, g, b, a) Define uma substituição de cor de fonte para o texto subsequente da UI
uiPopFontColor() Remove a substituição mais recente da cor da fonte da UI
uiPushElementColor(r, g, b) ou uiPushElementColor(r, g, b, a) Define uma substituição de cor de preenchimento para caixas, botões, alternadores, deslizadores e botões de imagem
uiPopElementColor() Remove a substituição mais recente da cor do elemento da UI
uiLabel(text, x, y) Desenha texto no espaço de tela nas coordenadas virtuais da UI
uiBox(x, y, w, h) Desenha uma caixa de painel simples
uiButton(text, x, y, w, h) Desenha um botão e retorna um dos constantes de estado UI_*()
uiToggle(text, value, x, y, w, h) Desenha um alternador e retorna o valor booleano atualizado
uiSlider(text, value, min, max, x, y, w, h) Desenha um deslizante e retorna o valor numérico atualizado
uiSprite(sprite, x, y) Desenha um sprite no espaço da UI usando o tamanho natural do sprite em unidades da UI
uiSprite(sprite, x, y, w, h) Desenha um sprite no espaço da UI com um tamanho explícito
uiImageButton(sprite, x, y, w, h) Desenha um botão de sprite e retorna um dos constantes de estado UI_*()

Constantes de Estado da UI

As funções da UI retornam constantes de estado para que seu script possa identificar se um widget está ocioso, sobreposto, pressionado ou clicado. Geralmente, UI_CLICKED() é o valor que você verifica para ações de botões.

Constante Valor Descrição
UI_IDLE() 0 Widget não está nem sobreposto nem pressionado
UI_HOVERED() 1 O mouse está sobre o widget
UI_HELD() 2 O botão do mouse está pressionado no widget
UI_CLICKED() 3 O widget foi clicado neste quadro

Funções da Câmera

A posição da câmera representa o centro da visão. O zoom mantém uma visualização vertical consistente do mundo, independentemente do tamanho da tela.

Função Descrição
getCameraX(scene) Retorna a posição X da câmera (centro da visão)
setCameraX(scene, x) Define a posição X da câmera
getCameraY(scene) Retorna a posição Y da câmera (centro da visão)
setCameraY(scene, y) Define a posição Y da câmera
getCameraZoom(scene) Retorna o nível de zoom da câmera
setCameraZoom(scene, zoom) Define o zoom da câmera. Zoom 1.0 mostra 720 unidades do mundo verticalmente, 3.0 mostra 240 unidades.

Comportamento do Zoom: O zoom mantém uma visualização vertical consistente do mundo, independentemente do tamanho da janela ou da proporção. Telas mais largas mostram mais horizontalmente, mas a mesma quantidade verticalmente.

Funções de Entrada

As funções de entrada permitem que o jogo reaja ao estado do teclado e do mouse. Use Pressed para ações de um quadro, Held para movimento contínuo e Released para ações que ocorrem quando um botão é solto.

Função Descrição
isKeyPressed(key) Verdadeiro apenas no quadro em que a tecla foi pressionada
isKeyHeld(key) Verdadeiro enquanto a tecla estiver pressionada
isKeyReleased(key) Verdadeiro apenas no quadro em que a tecla foi liberada
getMouseX() Retorna a posição X do mouse em coordenadas de tela
getMouseY() Retorna a posição Y do mouse em coordenadas de tela
getMouseDeltaX() Retorna o movimento em X do mouse neste quadro
getMouseDeltaY() Retorna o movimento em Y do mouse neste quadro
isMouseButtonPressed(button) Verdadeiro apenas no quadro em que o botão do mouse foi pressionado
isMouseButtonHeld(button) Verdadeiro enquanto o botão do mouse estiver pressionado
isMouseButtonReleased(button) Verdadeiro apenas no quadro em que o botão do mouse foi liberado
getFPS() Retorna os quadros por segundo atuais

Constantes de Botão do Mouse

As constantes de botão do mouse são passadas para as funções de entrada do mouse. Elas tornam o código mais legível do que números brutos.

Constante Descrição
MOUSE_LEFT() Botão esquerdo do mouse
MOUSE_RIGHT() Botão direito do mouse
MOUSE_MIDDLE() Botão do meio do mouse

Constantes de Tecla

As constantes de tecla são passadas para as funções de entrada do teclado. O motor expõe letras, números, teclas de função, setas e um pequeno conjunto de teclas especiais comuns.

Letras: KEY_A() até KEY_Z()

Números: KEY_0() até KEY_9()

Teclas de função: KEY_F1() até KEY_F12()

Teclas especiais: | Constante | Tecla | |----------|-----| | KEY_SPACE() | Barra de espaço | | KEY_ENTER() | Enter/Retorno | | KEY_ESCAPE() | Escape | | KEY_TAB() | Tab | | KEY_BACKSPACE() | Retornar | | KEY_DELETE() | Excluir | | KEY_SHIFT() | Shift | | KEY_CTRL() | Control | | KEY_ALT() | Alt | | KEY_LEFT() | Seta para a esquerda | | KEY_RIGHT() | Seta para a direita | | KEY_UP() | Seta para cima | | KEY_DOWN() | Seta para baixo | | KEY_HOME() | Início | | KEY_END() | Fim |

Funções Matemáticas

Os auxiliares matemáticos cobrem cálculos comuns usados em movimento, animação, aleatoriedade e limites de valores. Eles mantêm os scripts mais curtos e mais fáceis de ler.

Função Descrição
abs(n) Valor absoluto
min(a, b) Retorna o menor de dois números
max(a, b) Retorna o maior de dois números
clamp(value, min, max) Limita um valor entre o mínimo e o máximo
lerp(a, b, t) Interpola linearmente de a para b usando t
floor(n) Arredonda para baixo até o inteiro mais próximo
ceil(n) Arredonda para cima até o inteiro mais próximo
round(n) Arredonda para o inteiro mais próximo
sign(n) Retorna -1, 0 ou 1, dependendo do sinal da entrada
sqrt(n) Raiz quadrada
pow(base, exponent) Eleva uma base a uma potência
sin(radians) Seno de um ângulo em radianos
cos(radians) Cosseno de um ângulo em radianos
tan(radians) Tangente de um ângulo em radianos
random() Retorna um float aleatório entre 0.0 e 1.0
randomRange(min, max) Retorna um float aleatório entre min e max
randomInt(min, max) Retorna um inteiro aleatório entre min e max (inclusivo)
PI() Retorna pi (3.14159...)
TAU() Retorna tau (2 * pi = 6.28318...)
TWOPI() Retorna 2 * pi (o mesmo que TAU)
E() Retorna o número de Euler e (2.71828...)
deg2rad(degrees) Converte graus em radianos
rad2deg(radians) Converte radianos em graus

Funções Utilitárias

As funções utilitárias são auxiliares gerais que não pertencem a um tipo específico de ativo. print() é especialmente útil enquanto você aprende, pois mostra o que seu script está fazendo.

Função Descrição
print(value) Imprime na saída de depuração (mostrado no jogo)
quitGame() Sai do jogo. No editor, para o modo de reprodução. Em jogos exportados, fecha a aplicação

Funções de String

As funções de string trabalham com valores de texto. Por enquanto, esta seção é intencionalmente pequena.

Função Descrição
strlen(string) Retorna o comprimento de uma string (número de caracteres)

Funções de Armazenamento

Salva e carrega dados do jogo em arquivos. Suporta números, strings, booleanos e listas (incluindo listas aninhadas). NÃO suporta valores de Sprite, Cena, Objeto ou Áudio.

Função Descrição
save(path, data) Salva dados em um arquivo em formato binário. Retorna true em caso de sucesso
save(path, data, format) Salva dados com o formato especificado: "binary" ou "text"
save(path, data, format, key) Salva dados com criptografia usando a string de chave fornecida
load(path) Carrega dados de um arquivo. Retorna os dados ou null em caso de falha
load(path, key) Carrega dados criptografados usando a string de chave fornecida
fileExists(path) Retorna true se o arquivo existir no caminho dado
deleteFile(path) Exclui o arquivo no caminho dado. Retorna true em caso de sucesso
getAppDataPath() Retorna o caminho da pasta AppData/Tiniest2D (cria se necessário)
getDocumentsPath() Retorna o caminho da pasta Documentos do usuário
getGamePath() Retorna o diretório onde o executável do jogo está localizado

Exemplo: Salvando e Carregando o Progresso do Jogador

// Salvar dados do jogador
var playerData = [100, "Player1", true, [1, 2, 3]]
var savePath = getAppDataPath() + "/MyGame/save.dat"
if (save(savePath, playerData)) {
    print("Jogo salvo!")
}

// Carregar dados do jogador
if (fileExists(savePath)) {
    var loaded = load(savePath)
    if (loaded != null) {
        var health = loaded[0]
        var name = loaded[1]
        var hasKey = loaded[2]
        var inventory = loaded[3]
    }
}

// Salvar criptografado (para esconder dados de inspeção casual)
var secretData = ["secret", 12345]
save(getAppDataPath() + "/MyGame/config.dat", secretData, "binary", "mySecretKey")
var decrypted = load(getAppDataPath() + "/MyGame/config.dat", "mySecretKey")

// Formato de texto (legível por humanos, útil para depurar)
save(getAppDataPath() + "/MyGame/debug.txt", playerData, "text")

Notas:

  • O formato binário (padrão) é compacto e mais rápido
  • O formato de texto é legível por humanos, útil para depurar
  • A chave de criptografia errada retorna null (os dados serão lixo)
  • Diretórios são criados automaticamente ao salvar