Crie Jogos 2D com Tiniest2D
Referência da API do Motor
Lesson 8 of 11 • 10 XP
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:

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