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

Pr

Rem Configuração do sync
Sync On
Sync Rate 30

Rem Construir Cubos e colocá-los aleatoriamente
For x = 1 to 5
Make object cube x,100
Position object x,Rnd(2000),0,Rnd(2000)
Set object collision to boxes x
Next x

Rem Construir esferas
Make object sphere 10,50
Position object 10,-100,0,-100
Set object collision to spheres 10

Rem loop Principal
Do

Rem Armazena o ângulo Y do objeto em aY#
aY# = Object angle Y(10)

Rem Controla a entrada para a câmera
If Upkey()=1 then Move object 10,10
If Leftkey()=1 then Yrotate object 10,Wrapvalue(aY#-5)
If Rightkey()=1 then Yrotate object 10,Wrapvalue(aY#+5)

Rem Detecção de Colisão
If Object collision(10,0)>0 then position object 10,X#,0,Z#

Rem Pega a posição do jogador e armazena estes valores nas variáveis X# e Z#
X# = Object position x(10)
Z# = Object position z(10)

Rem Pega a nova posição da câmera e armazenas estes valores nas variáveis cZ# e cX#
cZ# = Newzvalue(Z#,aY#-180,100)
cX# = Newxvalue(X#,aY#-180,100)

Rem Posição da câmera
Position Camera cX#,75,cZ#

Rem Aponta a câmera para o jogador ou objeto
Point camera X#,25,Z#

Rem Atualiza tela
Sync

Loop

Neste tutorial nós iremos mostar como utilizar os comandos de detecção de colisão do DarkBASIC. Nós adicionamos a detecção de colisão no código do último tutorial (Perspectiva em terceira pessoa).

Set object collision to boxes x

Em nosso loop onde nós criamos e colocamos objetos aleatoriamente, nós inserimos o comando "Set Object Collision To Boxes". Este comando determina o tipo de detecção de colisão para um formato de caixa (box shape) que tem a mesma forma da qual nós estamos criando. Nós estamos utilizando o loop na variável "x" para passar o número do objeto para o comando.

Set object collision to spheres 10

Esta linha adiciona uma colisão parecido com o último comando de colisão exceto que o comando "Set Object Collision To Spheres" determina ao nosso jogador uma colisão do tipo esfera. Este tipo de colisão tem a mesma forma do jogador. O tipo de colisão que você dá a um objeto é uma responsabilidade sua. Tente sempre utilizar uma colisão que trabalhe melhor para o que você deseja fazer em seu programa.

If Object collision(10,0)>0 then position object 10,X#,0,Z#

Esta linha de código é onde todas as detecções de colisão são fornecidas. Nesta linha, se nosso jogador colidir com um dos nossos outros objetos, as variáveis X# e Z# são utilizadas para reposicionar o jogador à uma posição anterior a colisão. Note que nós colocamos esta linha após nós movermos o jogador e antes de nós armazenarmos os valores da nova posição em nossas variáveis. Fazendo isto nós podemos sempre nos assegurar que nossos valores X# e Z# nunca estão em uma posição de colisão. O comando "Object Collision" é utilizado para checar uma colisão. O primeiro valor entre parênteses deste comando é o número do primeiro objeto que nós queremos verificar o evento de colisão. O segundo número é o número do segundo objeto que nós desejamos detectar uma colisão com o primeiro objeto. Nós utilizamos um valor igual a 0 (zero) para instruir o DarkBASIC que nós queremos checar uma colisão contra qualquer outro objeto no cenário. Configurando o como 0, ele irá retornar o valor do objeto que o objeto de número 10 colide. Este comando retorna o valor igual a 0 (zero) se nenhuma colisão for detectada. Se o valor for maior que 0 (zero), um evento de colisão é detectado e nós posicionamos o objeto para onde ele estava antes de ser colidido. O outro tipo de colisão é o polígono. Este tipo de colisão você deve utilizar se você estiver colidindo com um grande objeto tal como um modelo construído como uma aplicação 3D. Agora você deve estar familiarizado com os comandos que permitem você adicionar uma detecção de colisão no DarkBASIC.

Tente modificar o segundo número no comando "Object Collision" para 3. Mova em torno do espaço 3D e veja se você pode encontrar o número de colisão 3 que significa colisão com cubos.

Tente modificar o objeto de colisão de cubos para esferas e vice-versa para ver a diferença entre ambos.

Tente modificar a colisão de esfera para o jogador ou objeto para tipo caixa para ver as modificações entre um e outro tipo de colisão.

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