Cursos / Jogos Digitais / Matemática Aplicada a jogos / Aula

arrow_back Aula 01 - Coordenadas Cartesianas e distância entre dois pontos: A Matemática das localizações

Exercício Resolvido 2

Um jogador está jogando uma partida e tem seu personagem posicionado no ponto $A=(152,127)$. Ao perceber um grupo de inimigos se aproximando, ele resolve fugir, ativando sua habilidade de blink (alcance máximo de 100 unidades) e clicando na sua própria base, posicionada no ponto $(12, 17)$. Calcule se foi possível mover o personagem para o local desejado e, se não, calcule o ponto para o qual o personagem foi movido.

Para saber se foi possível mover o personagem até o local desejado é necessário calcular a distância de sua posição inicial até a posição para onde ele desejava se teletransportar.

$d = \sqrt{(152-12)^2+(127-17)^2}$
$d = \sqrt{(140)^2+(110)^2}$
$d = \sqrt{19600+12100}$
$d = \sqrt{31700}$
$d \cong 178$

Como a distância calculada é maior que o range, não foi possível mover o personagem! Como descobrir para qual ponto ele foi movido é assunto da próxima aula, onde retomaremos esse exemplo.

Vimos então como podemos utilizar a distância entre dois pontos para calcular a movimentação de um personagem dentro de um jogo digital e transportá-lo de um ponto para outro. Mas e se o personagem for movido para um ponto que já está ocupado? O que devemos fazer? Isso varia de jogo para jogo, mas trás uma nova questão interessante... Como podemos saber se o local para onde o personagem será movido já está ocupado? Uma maneira de fazer isso é... utilizando... distância entre dois pontos!

Se dois objetos ocupam (ou tentam ocupar) o mesmo lugar no espaço dizemos que eles estão em colisão. Um dos métodos mais simples para detectar colisões é envolver os objetos para os quais gostaríamos de testar a colisão em formas geométricas (como um círculo ou quadrado) e então calcularmos se essas formas se interceptam. Podemos então simular o espaço ocupado pelo nosso personagem como um círculo de centro $(x,y)$ e raio r. Ao mover o personagem para o novo ponto, podemos simplesmente calcular se há algum outro objeto presente no cenário que tenha uma distância dele até o ponto $(x,y)$ menor que a soma dos raios do círculo do objeto e do personagem. Veja a Figura 23.

Dois círculos colidindo por terem distância entre os centros menor que a soma dos raios.

Caso a distância entre os dois pontos centrais seja, de fato, menor que a soma dos raios, significa que o objeto e o personagem estão tentando ocupar o mesmo espaço, o que gera uma colisão! Como devemos tratar isso? Fica a critério da sua imaginação!

Na aula 3 estudaremos Polígonos, outras formas geométricas que podem ser utilizadas com a finalidade dos círculos acima: envolver um personagem ou objeto de modo a delimitar o espaço ocupado por ele. Essas formas podem se aproximar melhor da representação visual do objeto do que círculos ou quadrados deixando menos “sobras” em volta do objeto representado.

Versão 5.3 - Todos os Direitos reservados