Os materiais didáticos aqui disponibilizados estão licenciados através de Creative Commons Atribuição-SemDerivações-SemDerivados CC BY-NC-ND. Você possui a permissão para visualizar e compartilhar, desde que atribua os créditos do autor. Não poderá alterá-los e nem utilizá-los para fins comerciais.
Atribuição-SemDerivações-SemDerivados
CC BY-NC-ND
Cursos / Jogos Digitais / Matemática Aplicada a jogos / Aula
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.
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.
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