Qualidade
Nome: Efeito de terremoto
Blogueiro: SIGILOSO
Descrissao: Neste tuto iremos aprender a "sacudir" a tela de seu jogo usando a variável view_angle,causando um efeito bem interessante!
Versao: PRO,mas creio q funcione no Lite tbm.
Foto(s):
Tutorial:
Para começarmos a criar nosso efeito de terremoto,iremos precisar declarar algumas variáveis globais.Caso vc nao tenha algum obj_controle,ou algum similar, crie um,e em seu CREATE,digite:
global.TREMOR=0
global.TREMOR2=0
Que beleza! Já temos nossas variáveis! Agora,vamos explicar a funçao de cada uma no nosso efeito:
TREMOR Este valor deverá ser sempre mantido como 0. Ele controla o efeito propriamente dito,faz a tela balançar pra um lado,e depois pro outro... Irei explicar melhor
TREMOR2 É a força do tremor! Quanto maior este valor,mais forte será o terremoto!
Usando direito essa variável,facilmente vc pode fazer efeitos reais pra qunado uma pedra cair no chao ou quando uma enorme explosão acontecer!
Lembre-se,aí no CREATE esses valores devem ser mantidos como 0!!
Bem,a explicação deste tuto será de trás para frente. Primeiro,veja o resultado do efeito,depois,entenda como ele foi feito. No STEP deste objeto,digite:
if keyboard_check_pressed( alguma tecla )=true
global.TREMOR2=4 ( ou algum outro valor maior do que 0
Agora,num código separado,digite:
if global.TREMOR=0
{
view_angle-=global.TREMOR2/1.5
if view_angle<-global.TREMOR2
global.TREMOR=1
}
if global.TREMOR=1
{
view_angle+=global.TREMOR2/1.5
if view_angle>global.TREMOR2
global.TREMOR=0
}
if global.TREMOR2>0
global.TREMOR2-=global.TREMOR2/10
else
{
view_angle=0
global.TREMOR=0
}
Até q nao é um código tao grande,nao é msm?? Ponha este objeto na room e teste,pressionando a tecla q vc escolheu na hora de digitar o código.
ATENÇÃO!! Certifique-se de q há algum objeto na tela para notar o tremor,e tbm veja se a view da room está ativada! E entao..teste.
Ahh!! Legal né? xD
Agora,vamos entender como esse efeito foi feito: ( rimo!!! XD )
No momento em q a tecla é pressionada, a variável TREMOR2 fica sendo igual ao valor q está lá. Nesse momento,esta parte do código entra em ação:
if global.TREMOR=0
{
view_angle-=global.TREMOR2/1.5
if view_angle<-global.TREMOR2
global.TREMOR=1
}
Como TREMOR está igual a zero,usando a variável view_angle ( o ângulo da room ),a tela irá inclinar numa velocidade definida pela variável TREMOR2,até q,ao inclinar até certo ponto,tbm definido pela variável TREMOR2,TREMOR fica sendo igual a 1,o q desativa esta parte do código,ativando esta:
if global.TREMOR=1
{
view_angle+=global.TREMOR2/1.5
if view_angle>global.TREMOR2
global.TREMOR=0
}
É a msm coisa! Mas inclinando a room para o outro lado,e q ao chegar à outro certo ponto,retorna a varíavel TREMOR para 0. Com isso,a view ficaria neste momivento continuamente. Se nao fosse...por esta parte:
if global.TREMOR2>0
global.TREMOR2-=global.TREMOR2/10
else
{
view_angle=0
global.TREMOR=0
}
Lembra-se,q praticamente todo o movimento do efeito era baseado na variável TREMOR2? Então,como vemos no código,enquanto ela estiver maior do q 0,ou seja,enquanto o terremoto estiver sendo executado,seu valor diminuirá,fazendo com q o terremoto "se acalme".
E no momento em q ele chega a 0,o terremoto acaba!
Viram? Uma forma simples de se criar um efeito bem legal e útil para seus jogos! xD
Espero ter ajudado mais alguem por aí... quem sabe?
Creditos: SIGILOSO
Nenhum comentário:
Postar um comentário