Keep your place in this quest

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

API Reference

Complete API Reference

Também disponível em formato resumido dentro do Editor: image.png

Asset Constructors

Construtores criam os principais tipos de ativo 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 de sprite com 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

List Methods

Crie listas com [] ou [value1, value2, ...]. 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

Operators

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

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

Object Properties

Objetos são as coisas que seu script normalmente move e altera durante o jogo. Essas 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 (redefine 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 (mais alto = desenhado depois)
getTint(obj) Retorna a tonalidade como uma 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

Sprite Functions

Funções de sprite permitem que o código inspecione ou modifique os dados de pixel do sprite e a velocidade da animação. A maioria dos jogos desenha sprites no editor, mas essas funções são úteis para efeitos procedurais, depuração ou alterações 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 sólida RGBA (0-255)
getPixel(sprite, frame, x, y) Retorna [r,g,b,a] do pixel em (x,y) no quadro dado, ou null 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 da animação do sprite em quadros por segundo
setAnimationFPS(sprite, fps) Define a velocidade da animação do sprite em quadros por segundo

Animation Functions

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 de animação atual.

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

Transform Functions (Flip/Rotation)

Funções de transformação mudam como um sprite de objeto é desenhado sem editar o próprio sprite. 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 o ângulo de rotação horária do objeto em graus
setRotation(obj, degrees) Define o ângulo de rotação horária do objeto em graus
move(obj, x, y) Move o objeto em seus eixos rotacionados locais. X positivo move para a direita, Y positivo move para baixo
getCenterOffset(obj) Retorna o pivot de rotação normalizado como [x, y]
setCenterOffset(obj, x, y) Define o pivot de rotação normalizado. Valores são limitados de 0 a 1
getCenterOffsetX(obj) Retorna o pivot normalizado X
setCenterOffsetX(obj, x) Define o pivot normalizado X
getCenterOffsetY(obj) Retorna o pivot normalizado Y
setCenterOffsetY(obj, y) Define o pivot normalizado Y
getCenter(obj) Retorna a posição mundial do pivot de rotação como [x, y]
setCenter(obj, x, y) Move o objeto para que seu pivot de rotação esteja na posição mundial (x, y)
getCenterX(obj) Retorna a posição mundial X do pivot de rotação
setCenterX(obj, x) Move o objeto para que seu pivot tenha X mundial x
getCenterY(obj) Retorna a posição mundial Y do pivot de rotação
setCenterY(obj, y) Move o objeto para que seu pivot tenha Y mundial y
getDirectionRight(obj) Retorna a direção direita rotacionada do objeto como [x, y]
getDirectionDown(obj) Retorna a direção para baixo rotacionada do objeto como [x, y]
getDirectionLeft(obj) Retorna a direção esquerda rotacionada do objeto como [x, y]
getDirectionUp(obj) Retorna a direção para cima rotacionada do objeto como [x, y]

O offset central padrão é [0.5, 0.5], que gira em torno do meio do sprite. [0, 0] gira em torno da localização superior esquerda do objeto, e [1, 1] gira em torno de location + (width, height).

Aviso para projetos mais antigos: A partir do Tiniest2D 1.8, getRotation() e setRotation() usam ângulos em graus em vez de valores de quarto de volta. Colisores de objeto girados agora afetam a física e as consultas de cena.

Collision Types

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

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

Scene Functions

Funções de cena controlam qual cena está ativa, quais objetos estão dentro dela e configurações gerais da cena como cor de fundo e gravidade. Elas também fornecem ajuda de busca para encontrar objetos em posições ou pelo 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 null
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 sobrepondo a caixa
getObjectByName(scene, name) Encontra um objeto pelo nome, ou null 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 estiver na cena
getObjectsBySprite(scene, sprite) Retorna todos os objetos que usam o sprite dado
getObjectsByCollisionType(scene, type) Retorna todos os objetos com o tipo de colisão dado

Audio Playback

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

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

Screen Functions

Funções de tela ajudam quando você precisa saber o tamanho da janela ou converter entre pixels na tela e posições no mundo. Isso é útil para mira de mouse, detecção de clique 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 as coordenadas de pixels da tela para coordenadas do mundo. Retorna [worldX, worldY]
worldToScreen(worldX, worldY) Converte coordenadas do mundo para coordenadas de pixels da tela. Retorna [screenX, screenY]

Modo de Janela

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

Constante Valor Descrição
WINDOW_WINDOWED() 0 Modo janela normal
WINDOW_MAXIMIZED() 1 Janela maximizada (padrão)
WINDOW_FULLSCREEN() 2 Modo fullscreen sem bordas
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 virtual. O espaço de UI padrão é 100 x 100. O tamanho da fonte pode ser ampliado para os próximos widgets de texto com uiPushFontSize(size) e restaurado com uiPopFontSize(). As cores das fontes podem ser empilhadas com uiPushFontColor(r, g, b[, a]), e os preenchimentos dos elementos da UI podem ser empilhados com uiPushElementColor(r, g, b[, a]). Como o resto da UI em modo imediato, essas substituiçõ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 atual da UI virtual
setUIResolutionX(width) Define a largura virtual da UI utilizada para chamadas subsequentes de UI
getUIResolutionY() Retorna a altura atual da UI virtual
setUIResolutionY(height) Define a altura virtual da UI utilizada para chamadas subsequentes de UI
uiPushFontSize(size) Empilha uma escala de tamanho de fonte para o texto subsequente da UI. Valores <= 0 utilizam dimensionamento automático
uiPopFontSize() Desempilha a substituição mais recente do tamanho da fonte da UI
uiPushFontColor(r, g, b) ou uiPushFontColor(r, g, b, a) Empilha uma substituição de cor da fonte para o texto subsequente da UI
uiPopFontColor() Desempilha a substituição de cor da fonte da UI mais recente
uiPushElementColor(r, g, b) ou uiPushElementColor(r, g, b, a) Empilha uma substituição de cor de preenchimento para caixas, botões, alternâncias, deslizadores e botões de imagem
uiPopElementColor() Desempilha a substituição de cor do elemento da UI mais recente
uiLabel(text, x, y) Desenha texto em 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 uma alternância e retorna o valor booleano atualizado
uiSlider(text, value, min, max, x, y, w, h) Desenha um deslizável e retorna o valor numérico atualizado
uiSprite(sprite, x, y) Desenha um sprite em espaço de UI usando o tamanho natural do sprite em unidades de UI
uiSprite(sprite, x, y, w, h) Desenha um sprite em espaço de 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á inativo, sobreposto, pressionado ou clicado. Normalmente, UI_CLICKED() é o valor que você verifica para ações de botão.

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

Funções de Câmera

A posição da câmera representa o centro da visão. O zoom mantém a visão vertical do mundo consistente, 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 visão vertical do mundo consistente, independentemente do tamanho da janela ou da proporção da tela. 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 acontecem 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 solta
getMouseX() Retorna a coordenada X do mouse em coordenadas da tela
getMouseY() Retorna a coordenada Y do mouse em coordenadas da tela
getMouseDeltaX() Retorna o movimento do mouse X neste quadro
getMouseDeltaY() Retorna o movimento do mouse Y 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 solto
getFPS() Retorna os quadros por segundo atuais

Constantes do Botão do Mouse

As constantes do botão do mouse são passadas para as funções de entrada do mouse. Elas facilitam a leitura do código em comparação a 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 Teclas

As constantes de teclas são passadas para 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() | Backspace | | KEY_DELETE() | Deletar | | KEY_SHIFT() | Shift | | KEY_CTRL() | Control | | KEY_ALT() | Alt | | KEY_LEFT() | Seta esquerda | | KEY_RIGHT() | Seta 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 movimentação, 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) Restringe um valor entre min e max
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 um expoente
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 (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 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 o aplicativo

Funções de String

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

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

Funções de Armazenamento

Salvar e carregar 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 no 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 fornecido
deleteFile(path) Deleta o arquivo no caminho fornecido. 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, "Jogador1", true, [1, 2, 3]]
var savePath = getAppDataPath() + "/MeuJogo/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 ocultar dados de inspeção casual)
var secretData = ["secreto", 12345]
save(getAppDataPath() + "/MeuJogo/config.dat", secretData, "binary", "minhaChaveSecreta")
var decrypted = load(getAppDataPath() + "/MeuJogo/config.dat", "minhaChaveSecreta")

// Formato texto (legível por humanos, útil para depuração)
save(getAppDataPath() + "/MeuJogo/debug.txt", playerData, "text")

Notas:

  • O formato binário (padrão) é compacto e mais rápido
  • O formato texto é legível por humanos, útil para depuração
  • Chave de criptografia errada retorna null (os dados irão ficar corrompidos)
  • Diretórios são criados automaticamente ao salvar