terça-feira, 6 de maio de 2014

Operadores Aritméticos e Expressões

Neste artigo veremos como montar expressões matemáticas simples em Blueprints usando os operadores aritméticos.

Os operadores aritméticos estão agrupados pelo tipo de dados dentro da categoria "Call Function -> Math" da lista de Ações que aparecem ao clicar com o botão direito no EventGraph.

A imagem abaixo mostra alguns operadores aritméticos do tipo Inteiro.


Esses operadores recebem dois valores de entrada do lado esquerdo e fornece o resultado da operação no lado direito. Os operadores "+" e "x" permitem que seja utilizado mais de dois valores de entrada, para isto basta clicar na opção "Add pin". Os valores de entrada podem ser inseridos diretamente ou podem ser obtidos a partir de variáveis.

Vamos iniciar com uma expressão bem simples cujo objetivo é adicionar 10 pontos à pontuação atual do jogador. Vamos assumir que existe uma variável inteira chamada "Score" que contém a pontuação atual. A imagem abaixo mostra a expressão associada ao Evento "Actor Begin Overlap".


A expressão acima está atribuindo um novo valor para a variável "Score". Para adicionar este tipo de Ação basta arrastar a variável para o EventGraph e escolher a opção "Set". Este novo valor consiste da soma entre o valor 10 e o valor atual da variável "Score" que é obtida usando a opção "Get".

Agora vamos montar uma expressão que é usada para calcular o "Attack Power" (poder de ataque) de um personagem no jogo World of Warcraft. A expressão utiliza os valores de "Level" (nível) e "Strength" (força) do personagem. A expressão é a seguinte:

Attack Power = (Level x 3) + (Strength x 2 - 20)

Para esta expressão vamos precisar criar três variáveis inteiras:


O ícone que contém um olho aberto ao lado das variáveis "Level" e "Strength" indica que elas podem ser modificadas direto no editor de nível. A variável "Attack Power" não deve ser editável porque o seu valor será obtido a partir da expressão.

O blueprint com a expressão ficou desta forma:

Clique para aumentar

Para montar uma expressão deste tipo em Blueprints é mais fácil identificar as últimas operações que serão feitas e montar o blueprint da forma inversa que se resolve uma expressão, ou seja, comece com a operação de menor precedência. Neste exemplo eu comecei com o operador "+", cujo valores de entrada são os resultados das pequenas expressões que estão dentro dos parênteses.