Cursos / Jogos Digitais / Matemática Aplicada a jogos / Aula
Vimos que duas retas podem ser paralelas, coincidentes ou concorrentes. Se duas retas são concorrentes, existe um ponto de interseção entre elas, ou seja, um ponto que pertence a ambas as retas. É possível, então, encontrar esse ponto a partir das equações das retas. Assim, seja $A = (x_0,y_0)$, o ponto de interseção das seguintes retas:
Como $A$ pertence às duas retas, $(x_0,y_0)$ deve ser solução do sistema
Encontre o ponto de interseção das retas da Figura 13 abaixo:
Nessa aula, conhecemos diversos conceitos relacionados a retas. A aplicação desses conceitos em jogos é bem clara e será aqui abordada através de um clássico da história dos games: Pong!
Que tal começarmos jogando para então discutirmos os elementos? Construímos uma versão bem simples com dois retângulos e um círculo. Acrescentamos ao nosso jogo a trajetória do círculo que é (adivinha?) uma reta! Você vai jogar usando as setas do teclado para controlar o retângulo da esquerda. Pra começar é só clicar no vídeo de demonstração abaixo!
Observe que a bola, em seu movimento, está sempre utilizando trajetórias retilíneas. As propriedades desse movimento serão discutidas em uma oportunidade posterior, na disciplina de Física Aplicada a Jogos. Por enquanto, vamos nos ater apenas à matemática do processo.
No início do jogo, a bola é lançada em direção ao jogador. Esse lançamento ocorre utilizando um ponto inicial e um ângulo definido aleatoriamente para indicar a direção que a bola deve se mover. Conhecendo um ponto e um ângulo conseguimos determinar a equação reduzida da reta, certo? Vamos agora encontrar qual reta é essa que define esse movimento.
Para fazer isso, posicionaremos a origem do sistema de coordenadas no centro da tela, de onde a bola surge no início do jogo. Nosso objetivo é, então, encontrar a reta que passa no ponto (0, 0) e forma com o eixo $x$ um ângulo $\alpha$.
Sabemos que a equação reduzida de uma reta é dada por
onde $m$ é o coeficiente angular da reta, ou seja, a tangente do ângulo que a reta forma com o eixo $x$. No nosso caso,
Sabemos também que o ponto $(0, 0)$ está na reta que procuramos. Então esse ponto deve satisfazer a equação da reta, ou seja
onde podemos concluir que n=0.
No nosso Pong, então, dado um ângulo α gerado aleatoriamente, a trajetória percorrida pela bola será a reta
Para que esse movimento visualmente ocorra, a bola, inicialmente desenhada no ponto $(x_0, y_0)$, deve ter seus valores alterados a cada frame para um novo ponto $(x_1,y_1)$ coerente com sua trajetória. Que novo ponto é esse? Como encontramos esse ponto? Simples! Utilizamos uma parametrização da reta que acabamos de encontrar.
Note que, na Figura 14, se o jogador não mover a plataforma azul para cima a bola sairá da tela do jogo, fazendo com que o computador marque um ponto. A trajetória até essa saída é o segmento de reta que liga o ponto $(0,0)$ ao ponto $(-6,-6 . tg \ \alpha)$. Suponha que, na Figura 14, $\alpha= 135°= \frac{3\pi}{4} rad$. Precisamos parametrizar o segmento que vai de $(0, 0)$ a $(-6, 6)$. Das equações (1) e (2), temos
A cada frame o valor de $t$ será incrementado de modo que o movimento da bola seja visível. O tamanho desse incremento pode ser ajustado de acordo com a necessidade e o detalhamento gráfico do jogo. Esse incremento define o que chamamos de velocidade da bola, isto é, o quanto ela se desloca a cada frame.
Dependendo do ângulo α a trajetória da bola pode levá-la a atingir a parede superior ou inferior, representadas no jogo pelas linhas pontilhadas superior e inferior. Caso isso aconteça, sua trajetória será alterada, como podemos ver na Figura 15.
Nesse caso, devemos criar uma nova reta sobre a qual a bola seguirá o seu trajeto. Essa nova reta passa pelo ponto onde a bola atinge a parede e segue com coefiente angular igual a $tg \ (180°\alpha)$, sendo $\alpha$ o coeficiente angular da reta do início do movimento.
Para esse exemplo, imagine que $\alpha = 150° = \frac{5\pi}{6}rad$ e que o ponto em que a bola toca a parede é o ponto $(\frac{1}{2}, \frac{-9}{2})$, considerando o mesmo sistema de coordenadas da Figura 14. Então a reta que descreve a trajetória inicial da bola tem coeficiente angular $m = tg \ 150º= - \frac{\sqrt{3}}{3}$ e essa reta passa pelo ponto $(\frac{1}{2}, \frac{-9}{2})$. Essa reta, então, terá equação
Depois da colisão com a parede, a nova trajetória da bola será ao longo da reta de coeficiente angular $m = tg \ 180º-150º = \frac{\sqrt{3}}{3}$ e que também passa pelo ponto $(\frac{1}{2}, \frac{-9}{2})$. Essa reta terá equação
Com isso, a bola terá a sua trajetória alterada.
Quando a bola colide com o jogador, devemos mudar o sentido horizontal do seu movimento e sua trajetória será representada por uma nova reta. Para adicionar um pouco de randomização ao jogo (RNG), essa nova reta é criada, como no começo, com um ângulo aleatório. Para que o jogador também possa influenciar o movimento de alguma maneira, definimos o sinal do coeficiente angular baseado na direção em que o jogador estava se movendo ao encostar na bola. Se ele tivesse se movendo para cima, a reta sobre a qual a bola se moverá terá coeficiente angular positivo. Caso contrário, o coeficiente angular será negativo. Você consegue ver o que isso influenciará no movimento? Vimos ao longo da aula que, se a reta tem um coeficiente angular positivo, o $y$ crescerá junto com o $x$ (a reta é crescente). Caso contrário, o $y$ irá decrescer quando o $x$ aumentar. A direção do movimento sobre a reta é definida por outra constante, que é invertida cada vez que há o contato com um jogador.
Percebeu como fica mais simples entender o jogo de Pong uma vez que entendemos melhor a matemática envolvida? Espero que tenham gostado do exemplo! Vamos jogar mais um pouco!
Versão 5.3 - Todos os Direitos reservados