![]() |
|
![]() ![]() ![]() |
|
3.6 Matemática de Colisão
Proposta: Mostrar como implementar uma matemática de colisão simples. Neste tutorial nós usaremos matemática de colisão para checar a colisão entre a bala e o alvo. A matemática de colisão pode ser mais rápida do que a colisão normal pois a colisão normal tem que checar mais objetos em um programa. Usando esta rotina simples de matemática de colisão, nós checamos a distância que nossa bala está do alvo. Se a distância entre ambos é zero, então, nós podemos determinar que eles colidiram. If BulletLife > 0 Dec BulletLife Move object 2,20 bX#=Object position X(2) bY#=Object position Y(2) bZ#=Object position Z(2) Position sound 2,bX#,bY#,bZ# set cursor 10,10 if Sqrt((mX# - bX#)^2 + (mY#+25 - bY#)^2 + (mZ# - bZ#)^2) <20 text 240,220 ,"hit hit hit hit hit hit hit hit" BulletLife = 0 Endif if BulletLife = 0 Hide object 2 stop sound 2 Endif Endif Nós adicionamos o seguinte código para a seção de tempo de vida da bala: if Sqrt((mX# - bX#)^2 + (mY#+25 - bY#)^2 + (mZ# - bZ#)^2) <20 text 240,220 ,"hit hit hit hit hit hit hit hit" BulletLife = 0 endif Esta comparação usa a função matemática "Sqrt" para calcular a distância entre os dois objetos. Se a distância entre ambos é menor que 20 então, ele exibe uma indicação para a tela informando ao jogador o alvo que foi colidido e o tempo de vida da bala é configura para 0. O que a linha da matemática de colisão está fazendo é subtrair a posição X do alvo que está armazenado na variável mX# da posição X da bala. O código então multiplica este número por ele mesmo através do uso da operação exponencial " ^ ". Esta mesma operação é feita para as coordenadas Y e Z. Note que nós adicionamos 25 à posição Y; esta é a posição que se encontra no meio do alvo como está em pé. Estes números são adicionados e a raiz quadrada é encontrada para o valor. O valor final pode ser considerado como a distância entre os dois objetos. Você pode utilizar este código se você precisar saber a distância entre dois pontos no espaço 3D. Se você não está familiarizado com raízes quadradas e operações exponenciais então você deve consultar um livro de matemática para ter um entendimento completo de como a distância é calculada. Saber quais variáveis estão envolvidas e qual é o valor gerado pela fórmula são as informações necessárias para poder usar este bloco de código em nossos programas. |
|
Esta é a barra de navegação para explorar todos os tutoriais da série "A Caça Aos Monstros" |
| 1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 2.1 | 2.2 | 2.3 | 2.4 | 2.5 | 3.1 | 3.2 | 3.3 | 3.4 | 3.5 | 3.6 | 3.7 | 3.8 | 3.9 | 3.10 | 3.11 | 3.12 | 3.13 | 3.14 |
| Copyright © 2003 Dark Basic Software Limited. | ||
| Virtual Object Informática Ltda.® |
![]() |
![]() |