ProdutosNewsComprarDownloadsDownloadsDownloadsTutoriaisSuporteNão disponívelGaleriaForumContato  

DarkBASIC Pro
Versão de Avaliação
Patch 5.4
USB Dongle
Forum
Indique
Lista de Email
  Diário Antigo
Outros Produtos
Cartography Shop
DarkMatter
Curso 3D Studio
Combinados
Local DBPro Sites
Italy
UK

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.

Promoção de Lançamento

Clique aqui para comprar o 
DBPro R$220,00

Clique aqui para comprar o 
DBPro para Universitários R$150,00


clique aqui para comprar o Upgrade a partir da versão clássica por R$150,00

Nova pagina 1

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