Loading [MathJax]/jax/output/HTML-CSS/jax.js

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=(15212)2+(12717)2
d=(140)2+(110)2
d=19600+12100
d=31700
d178

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.

Figura 23 - Dois círculos colidindo por terem distância entre os centros menor que a soma dos raios.
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