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: Explicar como atirar uma bala na perspectiva de primeira pessoa

Este tutorial explica como criar uma arma e atirar uma bala na perspectiva de primeira pessoa. Como acontece com os tutoriais anteriores, nós estamos adicionando o código anterior e implementando-o com as novas técnicas. Neste tutorial nós só iremos discutir as novas mudanças do código que é a implementação da arma e das balas.

Rem Cria o tambor da arma
Make object cylinder 1,2
XRotate Object 1,90
Fix object pivot 1
Scale object 1,100,100,500
position object 1,0,-7,15
Lock object on 1	

Esta seção de código, colocado antes do loop principal, cria um objeto cilindro e o rotaciona. Ele está perpendicular a visão padrão da câmera. Nós usamos o comando "Fix Object Pivot" para fazer com que esta seja a orientação padrão do objeto. Isto significa que o objeto, em sua rotação atual, tem todos os seus ângulos de rotação configurados como 0 sem modificar a orientação do objeto. Este comando é usado normalmente quando carregamos modelos que estão fora da orientação. Se você carregar um modelo de um character e ele estiver com sua face em sua orientação padrão, então você pode rotacionar o modelo character pois ele manterá desta forma. Você corrige o eixo do objeto para fazer com que a posição atual seja a orientação padrão. Após alinhar o objeto com a câmera, nós usamos o comando "Scale Object" para escalar o objeto na direção Z. Isto cria um longo objeto que será a nossa arma. O primeiro parâmetro neste comando é o objeto que nós queremos escalar. Os últimos três parâmetros no comando são as direções X, Y e Z que nós queremos escalar o objeto. Nós configuramos a escala X e Y para 100. Este valor não está em unidades; ele representa um valor em porcentagem desta direções. Nós configuramos a escala Z para 500, escalando a porcentagem do objeto em 500 ou 5 vezes seu comprimento original. Por próximo nós posicionamos o objeto. Por padrão, nossa câmera está configurada na posição (0,0,0) com uma rotação de (0,0,0). Nós posicionamos o cilindro a: -7 unidades abaixo da câmera e 15 unidades para frente da câmera. Ele cria a semelhança do tambor da arma.

Rem Cria bala
Make Object Sphere 2,2
Hide Object 2	

Este código cria uma pequena esfera no formato de um projétil de bala como objeto. Nós usamos o comando "Hide Object" para ocultar o objeto. A razão pela qual estamos fazendo isto aqui é que nós não queremos que o projétil seja visto até que ele seja disparado.

if Mouseclick()=1 and BulletLife=0
Position object 2,X#,Y#+43,Z#
Set object to camera orientation 2
BulletLife =25
Show object 2
Endif

Esta parte do código refere-se ao ponto em que recebemos a entrada a partir do botão do mouse. Ao clicar com o mouse, a bala é disparada da nossa arma. Nós usamos o comando "MouseClick()" para determinar se a bala foi ou não disparada. Este comando irá retornar um número quando um dos botões do mouse for pressionado: 1 para o botão esquerdo, 2 para o botão direito e 0 para nenhum botão. A instrução de comparação "if" também checa se a bala já está sendo disparada (ao checar se a variável "BulletLife" é igual a 0). Se estes dois testes forem verdadeiros, então o objeto bala é posicionado a sete unidades abaixo da câmera. Posteriormente, o objeto bala é orientado para a câmera usar o comando "Set Object To Camera Orientation". Este comando possui um parâmetro: o número do objeto que nós queremos alinhar com a câmera. A partir do momento que a bala é nova, nós configuramos a variável "BulletLife" igual a 25. Nós permitimos nosso programa a considerar o nosso objeto bala para ser renderizado, usando o comando "Show Object".

If BulletLife > 0
Dec BulletLife
Move object 2,20
If BulletLife = 0 then Hide object 2
Endif

Esta parte do código é onde a bala é movida. Se a variável "BulletLife" for maior que 0 nós usamos o comando "Dec" para decrementar a variável "BulletLife". Este comando decrementa nossa variável em 1. Nós movemos o objeto na direção que ele está com a face voltada em 20 unidades. Depois, nós checamos a variável "BulletLife" para ver se ele é igual a 0. Se ela for igual a 0, nossa bala estará fora do seu tempo de vida e nós ocultamos o projétil novamente.

Agora você já está apto a adicionar tiros em seu jogo.

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