sexta-feira, 6 de janeiro de 2012

[SIGILOSO] Efeito de terremoto

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