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 criar um simples efeito de explosão

Neste tutorial nós iremos mostrar como criar um simples efeito de explosão quando as balas encontram seu alvo ou quando elas abandonam a arma.

rem Cria efeito de explosão
Make Object Sphere 30,20
texture object 30,2
ghost object on 30
Hide Object 30
Make Object Sphere 31,20
texture object 31,2
ghost object on 31
Hide Object 31
Load 3Dsound "Explode.wav",3	

Estas linhas de código são colocadas no início do programa quando nós iniciamos nossos objetos, sons e imagens. Nós estamos criando os objetos que nós iremos usar para o efeito de explosão. Note que nós estamos reutilizando a textura que nós usamos para o fogo em nosso efeito de partícula. Nós também carregamos um arquivo de som que nós iremos usar como nosso som de explosão.

if Mouseclick()=1 and Explode =0
if BulletLife<50
Position object 2,X#,Y#-7,Z#
Set object to camera orientation 2
BulletLife =120
show object 2
Loop sound 2
Endif
Endif

Aqui nós introduzimos a variável "Explode" em nosso programa. Nós estamos checando se uma explosão está em efeito. Se existir uma ocorrência de explosão nós não queremos que o jogador possa atirar novamente e cortar o efeito da explosão, diminuindo o impacto do efeito. Nós também configuramos um limite de quando a bala poder ser atirada novamente, testando se a vida da bala é menor que 50. Isto é feito para assegurar que a bala está distante o bastante de onde ocorre o efeito de explosão, caso contrário o efeito não seria notado pelo jogador.

if bY# < Get Ground height(1,bX#,bZ#) then BulletLife=0

A linha de código anterior está localizada na sub-rotina "ShootBullet". Ela checa se a bala obteve contato com algo e configura a variável "BulletLife" igual a zero caso ela tiver contato

if BulletLife = 0
Hide object 2
stop sound 2
for x=10 to 20
hide object x
next x
Explode = 20
endif

Este segmento de código também está na sub-rotina "ShootBullet". Ela está após o tempo de vida ser configurado para zero ou quando a bala colide com algo. Todos os efeitos de partículas estão ocultos assim como os objetos (no caso a bala). A variável explode está configurada com um valor igual a 20, para iniciar o contador de explosão.

If Explode > 0 then Gosub ExplodeRocket

Esta linha de código está em nosso loop principal. Se o contador de explosão for maior que zero, a sub-rotina "ExplodeRocket" é chamada para executar o código de explosão.

Rem Explosão da bala
ExplodeRocket:
Position object 30,bX#,bY#,bZ#
Show object 30
Position object 31,bX#,bY#,bZ#
Show object 31
EScale=20*(30-Explode)
Scale object 30,EScale,EScale,EScale
Yrotate object 30,WrapValue(Explode*37)
Scale object 31,EScale/1.5,EScale/1.5,EScale/1.5
Yrotate object 31,WrapValue(359-Explode*37)
Dec Explode
If Explode = 0 then hide object 30: Hide object 31
If Explode=18
position sound 3,bX#,bY#,bZ#
play sound 3
endif
If Explode < 15 then position sound 3,X#,Y#,Z#
Return

A sub-rotina "ExplodeRocket" está onde tudo trabalha para que haja a explosão. Onde a bala parar, nós então posicionamos as duas esferas que nós preparamos para criar o nosso efeito de explosão. Nós calculamos o nosso fator de escala de explosão e o armazenamos na variável "EScale". Depois, nós escalamos nossa primeira esfera e a rotacionarmos em uma velocidade que irá diminuir conforme a esfera aumenta. Nós fazemos o mesmo com a outra esfera, exceto pelo fato que nós escalamos esta outra em uma escala menor do que com que ocorre com nossa primeira esfera e a rotacionarmos em uma escala maior, baseado no valor "Explode". Agora nós usamos o comando "Dec" para decrementar o valor de explosão em uma unidade. Nós checamos se nossa variável "Explode" alcançou o valor zero. Se a resposta for sim, nós ocultamos nossas duas esferas de explosão. Note, nós usamos dois ponto (:) para executar dois comandos "Hide Object" em uma linha. Nós poderíamos ter usado a comparação "If EndIf" mas, ao usar os dois pontos (:) nós tornamos nosso código menor e mais fácil de ser lido. As próximas linhas do código imitam o efeito de som, onde você ver algo acontecer ao longe, antes mesmo de poder escutar. O código espera que o contador alcance o valor 18 antes de eles executar o som. Ele também inicia o som executando-o na posição da bala. Quando o contador alcança o valor 15 o som é movido para a posição da câmera criando o efeito de explosão a distância. Utilizando o "Play Sound" ao invés de usar o comando "Loop Sound" o som é executado somente uma vez e então é finalizado.

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

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