Keep your place in this quest

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

O Tiniest Engine usa uma linguagem de script simples inspirada em Lua e Python.

Variáveis

Uma variável é uma caixa nomeada que armazena um valor. Você usa variáveis para lembrar informações e reutilizá-las mais tarde. Por exemplo, um jogo pode armazenar a saúde do jogador, a velocidade de movimento, a pontuação ou o inventário atual.

Use var para criar uma nova variável. O nome vai à esquerda e o valor vai à direita.

var name = "Player One"    // String
var health = 100           // Número (inteiro)
var speed = 2.5            // Número (float)
var isAlive = true         // Booleano
var inventory = []         // Lista vazia
var nothing = null         // Valor nulo (sem valor)

Comentários

Comentários são notas para humanos. O engine os ignora ao executar o jogo. Use comentários para explicar o que uma seção de código está fazendo, deixar lembretes para você mesmo, ou descrever temporariamente uma ideia complicada.

// Este é um comentário de uma linha
var x = 10  // Comentário no final da linha

Operadores

Operadores são símbolos ou palavras-chave que combinam valores. Operadores aritméticos fazem matemática, operadores de comparação fazem perguntas, e operadores lógicos combinam respostas verdadeiras/falsas.

A maior parte da lógica do jogo é construída a partir de pequenas expressões como "mova para a esquerda se a tecla A estiver pressionada" ou "colete uma moeda se o jogador a tocou." Operadores são como você escreve essas expressões.

// Aritmética
var sum = 5 + 3        // 8
var diff = 10 - 4      // 6
var product = 3 * 4    // 12
var quotient = 15 / 3  // 5
var remainder = 17 % 5 // 2

// Comparação
var equal = (5 == 5)       // verdadeiro
var notEqual = (5 != 3)    // verdadeiro
var greater = (10 > 5)     // verdadeiro
var less = (3 < 7)         // verdadeiro
var greaterEq = (5 >= 5)   // verdadeiro
var lessEq = (3 <= 5)      // verdadeiro

// Lógica (use as palavras-chave 'and' e 'or', não && ou ||)
var both = true and false   // falso
var either = true or false  // verdadeiro
var not = !true             // falso

Listas

Uma lista armazena múltiplos valores em uma variável. Isso é útil quando você tem muitas coisas do mesmo tipo, como inimigos, balas, moedas, pontos de verificação ou opções de menu.

Use colchetes para criar listas. [] cria uma lista vazia, e [1, 2, 3] cria uma lista com valores iniciais. Os índices das listas começam em 0, então o primeiro item é items[0].

var items = []
items.add("sword")         // Adiciona ao final da lista
items.add("shield")
items.add(42)

var numbers = [10, 20, 30]
var first = items[0]       // "sword"
numbers[1] = 99            // Sobrescreve por índice
var count = items.length() // 3

items.remove(0)            // Remove o elemento no índice 0
items.clear()              // Remove todos os elementos

Percorra uma lista com um loop de índice:

for (var i = 0; i < items.length(); i = i + 1) {
    print(items[i])
}

Declarações If/Else

Uma declaração if permite que o jogo escolha o que fazer. Se a condição for verdadeira, o primeiro bloco é executado. Se for falsa, o bloco else pode ser executado em vez disso.

Assim é como os jogos reagem ao estado: se a saúde é zero, mostra game over; se uma tecla é pressionada, pula; se a pontuação é alta o suficiente, desbloqueia o próximo nível.

if (health <= 0) {
    print("Game Over")
} else if (health < 25) {
    print("Low Health!")
} else {
    print("Health OK")
}

Laços

Laços repetem código. Eles são úteis quando você quer contar, processar cada item em uma lista, gerar vários objetos, ou continuar fazendo algo enquanto uma condição permanecer verdadeira.

Use um laço while quando quiser repetir enquanto uma condição for verdadeira. Use um laço for quando você souber que está contando por um intervalo ou percorrendo uma lista por índice.

Laço While:

var i = 0
while (i < 10) {
    print(i)
    i = i + 1
}

Laço For:

for (var i = 0; i < 10; i = i + 1) {
    print(i)
}

Declaração Break (sair do laço cedo):

for (var i = 0; i < 100; i = i + 1) {
    if (i == 5) {
        break  // Sair do laço quando i é 5
    }
    print(i)
}
// Imprime: 0, 1, 2, 3, 4

Declaração Continue (pular para a próxima iteração):

for (var i = 0; i < 5; i = i + 1) {
    if (i == 2) {
        continue  // Pular impressão quando i é 2
    }
    print(i)
}
// Imprime: 0, 1, 3, 4

Funções

Uma função é um bloco reutilizável de código com um nome. Você chama a função quando quer que aquele bloco seja executado. As funções ajudam a manter seu script organizado para que você não copie as mesmas instruções em todo lugar.

As funções podem receber valores chamados parâmetros. Elas também podem enviar um valor de volta com return. No exemplo abaixo, baseDamage e multiplier são parâmetros, e a função retorna o número de dano final.

func calculateDamage(baseDamage, multiplier) {
    return baseDamage * multiplier
}

var damage = calculateDamage(10, 1.5)  // 15