Operadores
Você pode utilizar os seguintes operadores nas expressões:
+ (adição)
- (subtração)
[*] (multiplicação)
/ (divisão)
% (módulo, resto da divisão)
^ (elevado à potência, ex: 5 ^ 2 = 25)
& (concatena strings, ex: "Sua pontuação é: " & pontos)
Existem também os operadores de comparação =, <>, <, <=, >, >= para comparar valores. Retornam 1 se a comparação for verdadeira e 0 se for falsa.
& também serve como o operador lógico AND, e | como operador lógico OR. Eles são úteis quando combinados com operadores de comparação.
Ex: pontos < 0 | vida < 0, que retorna 1 se for verdadeiro e 0 se for falso.
?: é um operador condicional, que permite testar condições em uma expressão. Ele é utilizado com operador de comparação e lógico. A expressão é condição ? resultado_verdadeiro : resultado_falso.
Ex: vida < 0 | pontos < 0 ? "Fim de jogo!" : "Continue indo!".
A condição conta como verdadeiro se o resultado não for zero, e falso se for zero.
Strings (texto)
Textos também são conhecidos como strings em programação, e o Construct 2 também utiliza essa nomenclatura. Textos em expressões devem estar dentro de aspas duplas. Ex: "Olá".
As aspas duplas não são incluídas no texto, então colocar um objeto de texto para mostra a expressão "Olá" irá mostrar Olá, sem as aspas duplas. Para incluir as aspas duplas em uma string, utilize duas aspas duplas seguidas (""). Ex: "Ele disse ""oi"" para mim" irá retornar Ele disse "oi" para mim.
Você pode usar & para construir strings misturando textos e números. Ex: "Sua pontuação é: " & pontos
Expressões Padrões de Matemática
A lista completa de expressões podem ser encontrados no próprio Construct 2: Dê um duplo clique no objeto System no painel de objetos quando você estiver escrevendo uma expressão. Porém os mais comuns estão listados aqui.
sin (seno de um ângulo em graus)
cos (cosseno de um ângulo em graus)
tan (tangente de um ângulo em graus)
asin (seno inverso, returna graus)
acos (cosseno inverso, returna graus)
atan (tangente inverso, returna graus)
sqrt (raiz quadrada)
abs (valor absoluto)
exp (exponenciação, e^x)
ln (logaritmo para base e)
log10 (logaritmo para base 10)
Lembrando que o Construct 2 sempre usa graus, nunca radiano. Se você colocar um ângulo em qualquer lugar no Construct 2, sempre será em graus.
Expressão de Conversão
int(x) - Converte x para integer
float(x) - Converte x para float
str(x) - Converte x para string
Não se esqueça de que você pode usar & para construir strings. Ex: "Sua pontuação é: " & pontos retorna a string "Sua pontuação é: 10" tendo a variável pontos = 10.
Outras Expressões
Angle(x1, y1, x2, y2) - Retorna o ângulo, em graus, entre os pontos (x1, y1) e (x2, y2), usando atan2(y2 - y1, x2 - x1).
Ceil(n) - Arredonda um número para cima. Ex: ceil(6.1) retorna 7.
Distance(x1, y1, x2, y2) - Retorna a distância entre os pontos (x1, y1) e (x2, y2).
dt - Delta-time. Veja Delta-time e independência de framerate.
Floor(n) - Arredonda um número para baixo. Ex: floor(6.7) retorna 6.
fps - Framerate atual, em frames por segundo.
len(x) - Retorna o tamanho da string x.
Lerp(a, b, x) - Interpolação linear: Calcula a + x(b - a), ou interpola linearmente a para b por x%. Ex: lerp(a, b, 0.25) retorna 25% do valor do caminho entre a para b
LoopIndex - Index do loop atual (topo)
LoopIndex("name") - Index do loop do nome determinado
ObjectCount - Número total de instâncias do objeto no jogo
Max(a, b [,c,...]) - Retorna o maior valor de um conjunto de valores. Você pode passar qualquer número de valores.
Min(a, b [,c,...]) - Retorna o menor valor de um conjunto de valores. Você pode passar qualquer número de valores.
Newline - String do texto contendo uma quebra de linha. Ex: "Olá" & newline & "Mundo".
Random(N) - Retorna um número aleatório entre 0 e N, sem incluir N. O resultado inclui frações, então random(3) pode retornar 2.5. Utilize floor(random(n)) para gerar um número aleatório inteiro, sem incluir N. Ex: floor(random(3)) irá retornar 0, 1 ou 2. Random(A, B) pode ser utilizado para gerar um número aleatório entre A e B.
Round(value) - Arredonda o valor para o inteiro mais próximo. Ex: round(6.8) retorna 7.
Scrollx, Scrolly - Posição atual do scroll.
Timescale - Escala do tempo (time scale) atual. Veja Delta-time e independência de framerate.
Time - Tempo em segundos desde o início do jogo.
TickCount - Número de ticks ocorridos desde o início do jogo.
Não se esqueça de checar a lista inteira no painel de expressões do Construct 2.
Expressões úteis em outros objetos
Ambos os objetos Mouse e Touch permitem passar o parâmetro da camada (layer) para as expressões X e Y. É muito útil se você precisar fazer alguma escala ou rodar a camada.
Ex: Mouse.X("Layer 1") retorna a posição X do mouse na Layer 1, levando em conta a paralaxe (parallax), escala (scale) e ângulo (angle). Se você utilizar apenas o Mouse.X, ele não leva em conta esses valores e o resultado pode estar errado.
Expressões de Indexação de Objeto
Você pode adicionar um índice de objeto com base 0 para conseguir expressões de diferentes instâncias de objetos.
Ex: Sprite(0).X pega a posição X da primeira instância do Sprite, e Sprite(1).X pega a posição X da segunda instância. Você também pode informar outra expressão para o índice. Números negativos começam pelo final, então Sprite(-1).X pega a posição X da última instância do Sprite.
Isso pode ser aplicado para qualquer expressão de objetos, não apenas Sprites.