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.
API Reference
Complete API Reference
Também disponível em formato resumido dentro do Editor:

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