Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
[Tutorial]Partículas
4 participantes
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
[Tutorial]Partículas
Na versão profissional do Game Maker, dentre os vários benefícios, existem o das partículas. Com as partículas, podemos criar um simples ponto na tela até furacões, queimadas e tempestades. Lógico que isso dá um pouquinho de trabalho, mas como sempre se começa do início, não vamos colocar a carroça na frente dos bois. Muita gente acha díficil criar efeitos avançados de partículas, mas tudo é questão de interpretação dos códigos. Esse tutorial pode ser um pouco grande, mas vale a pena ler, é muito interessante aprender sobre as partículas XD.
Inicialmente, precisamos criar um sistema. O sistema de partículas é o principal de tudo, pois ele irá ser o ponto de partida de tudo o que vai ocorrer dentro dele. Como tudo vai ser definido uma só vez, coloque todos os códigos seguintes no Create. Para criar esse sistema, usamos esse código :
Tudo já está pronto para criar nosso efeito. Certos códigos se repetiram ao longo do sistema, sendo eles: ps, ind, incr e wiggle. Vou explicar cada um deles para não dar trabalho mais na frente:
Primeiramente, definiremos a forma da partícula. O código tem essa estrutura:
Depois, definiremos o tamanho da partícula, com esse código:
Definido o tamanho, criaremos a orientação da partícula. A orientação faz a partícula "rodar" ou adquirir um ângulo; portanto, é descartável. O código para usar é:
Depois, definiremos a velocidade da partícula com esse código:
Depois, você define a direção da partícula, utilizando esse código;
Após a direção, escolheremos a(s) cor(es) da partícula. Tem como escolher até 3 cores simultâneas. Aqui abaixo vão os códigos:
Para 1 cor:
Para 2 cores:
Para 3 cores:
As cores apareceram na ordem do código. Por exemplo (se você estiver usando 3 cores), se em color1, você colocar verde, em color2, vermelho e em color3, azul, vai aparecer nessa ordem. O tempo de vida da partícula está diretamente ligado a isso, como veremos mais à frente.
Agora, definiremos o alpha, ou seja, a opacidade das partículas. Segue a mesma estrutura das cores:
Para 1 alpha:
Para 2 alpha's:
Para 3 alpha's:
Agora, definiremos a vida da partícula, ou seja, o tempo que ela vai existir. O código é:
Esse código você coloca se for do seu agrado, que é o da gravidade. Essa é a estrutura:
Terminamos nosso sistema. Alguns códigos, como o blend, step, death e make_colors eu não expliquei, pois são descartáveis e provavelmente não são usados (provavelmente).
Agora está tudo feito. O sistema está pronto! Mas... não acontece nada?! Isso porque algo tem que emitir a partícula. Para isso, existe o emissor.
Ele também tem um sistema próprio. Temos a seguir 3 passos (todos os códigos abaixo serão no evento Step).
1º Passo: Criar o sistema.
Aqui temos que criar o sistema de emissor, como criamos o sistema de partículas. O código para criar é part_emitter_create(ps). Chamaremos o nosso sistema de global.em. Então o nosso código fica assim:
2º Passo: Cria a região de emissão.
Agora criaremos a região de emissão das partículas, ou seja, onde ela vai ser criada. Para facilitar, usaremos os códigos do mouse. O código é:
E em distribuition, definimos como será a distribuição das partículas na região. Existem três tipos:
3º Passo: Criar o emissor
Agora é só criar o código que emite as partículas. O código é part_emitter_burst. Ele tem essa estrutura:
Pronto! Agora você pode criar seus efeitos sem mais dúvidas quanto aos códigos. Quem sabe, o próximo tutorial será sobre os atratores, as regiões que atraem as partículas.
Comenta ae, mano, demorou um bocado pra digitar tudo isso =P.
FLWS!
Inicialmente, precisamos criar um sistema. O sistema de partículas é o principal de tudo, pois ele irá ser o ponto de partida de tudo o que vai ocorrer dentro dele. Como tudo vai ser definido uma só vez, coloque todos os códigos seguintes no Create. Para criar esse sistema, usamos esse código :
- Código:
part_system_create();
- Código:
global.sys=part_system_create();
- Código:
global.pt1=part_type_create();
Tudo já está pronto para criar nosso efeito. Certos códigos se repetiram ao longo do sistema, sendo eles: ps, ind, incr e wiggle. Vou explicar cada um deles para não dar trabalho mais na frente:
Ps é a sigla de part system. É nosso mano velho, o do começo, lembra? No lugar de ps, você irá colocar a id do sistema, nesse caso, global.sys.
Ind é a indentificação do tipo da partícula do nosso sistema, no caso, global.pt1. (se os códigos forem relacionados a ela)*
Incr é uma abreviação de increase, que significa aumento, adição. É o quanto certa propriedade da partícula vai aumentar por step.
Wiggle significa deformação. É a força da deformação de certa propriedade da partícula.~
Primeiramente, definiremos a forma da partícula. O código tem essa estrutura:
- Código:
part_type_shape(ind,shape)
pt_shape_pixel
pt_shape_disk
pt_shape_square
pt_shape_line
pt_shape_star
pt_shape_circle
pt_shape_ring
pt_shape_sphere
pt_shape_flare
pt_shape_spark
pt_shape_explosion
pt_shape_cloud
pt_shape_smoke
pt_shape_snow
Depois, definiremos o tamanho da partícula, com esse código:
- Código:
part_type_size(ind, min_size, size_max, size_incr, size_wiggle)
Definido o tamanho, criaremos a orientação da partícula. A orientação faz a partícula "rodar" ou adquirir um ângulo; portanto, é descartável. O código para usar é:
- Código:
part_type_orientation(ind,ang_min,ang_max,ang_incr,ang_wiggle,ang_relative)
Depois, definiremos a velocidade da partícula com esse código:
- Código:
part_type_speed(ind,speed_min,speed_max,speed_incr,speed_wiggle)
Depois, você define a direção da partícula, utilizando esse código;
- Código:
part_type_direction(ind, dir_min, dir_max, dir_incr, dir_wiggle)
Após a direção, escolheremos a(s) cor(es) da partícula. Tem como escolher até 3 cores simultâneas. Aqui abaixo vão os códigos:
Para 1 cor:
- Código:
part_type_color1(ind, color1)
Para 2 cores:
- Código:
part_type_color2(ind, color1, color2)
Para 3 cores:
- Código:
part_type_color3(ind, color1, color2, color3)
As cores apareceram na ordem do código. Por exemplo (se você estiver usando 3 cores), se em color1, você colocar verde, em color2, vermelho e em color3, azul, vai aparecer nessa ordem. O tempo de vida da partícula está diretamente ligado a isso, como veremos mais à frente.
Agora, definiremos o alpha, ou seja, a opacidade das partículas. Segue a mesma estrutura das cores:
Para 1 alpha:
- Código:
part_type_alpha1(ind, alpha1)
Para 2 alpha's:
- Código:
part_type_alpha2(ind, alpha1, alpha2)
Para 3 alpha's:
- Código:
part_type_alpha3(ind, alpha1, alpha2, alpha3)
Agora, definiremos a vida da partícula, ou seja, o tempo que ela vai existir. O código é:
- Código:
part_type_life(ind, life_min, life_max)
Esse código você coloca se for do seu agrado, que é o da gravidade. Essa é a estrutura:
- Código:
part_type_gravity(ind, grav_amount, grav_dir)
O grav_amount é o gravity, e o grav_dir é o gravity_direction. Simples, não?gravity=0.5
gravity_direction=270
Terminamos nosso sistema. Alguns códigos, como o blend, step, death e make_colors eu não expliquei, pois são descartáveis e provavelmente não são usados (provavelmente).
Agora está tudo feito. O sistema está pronto! Mas... não acontece nada?! Isso porque algo tem que emitir a partícula. Para isso, existe o emissor.
Ele também tem um sistema próprio. Temos a seguir 3 passos (todos os códigos abaixo serão no evento Step).
1º Passo: Criar o sistema.
Aqui temos que criar o sistema de emissor, como criamos o sistema de partículas. O código para criar é part_emitter_create(ps). Chamaremos o nosso sistema de global.em. Então o nosso código fica assim:
- Código:
global.em=part_emitter_create(global.sys);
2º Passo: Cria a região de emissão.
Agora criaremos a região de emissão das partículas, ou seja, onde ela vai ser criada. Para facilitar, usaremos os códigos do mouse. O código é:
- Código:
part_emitter_region(ps,ind,xmin,xmax,ymin,ymax,shape,distribution)
ps_shape_rectangle
ps_shape_ellipse
ps_shape_diamond
ps_shape_line
E em distribuition, definimos como será a distribuição das partículas na região. Existem três tipos:
ps_distr_linear: Usando esse, a distribuição é igual em toda a região.
ps_distr_gaussian: Aqui a distribuição é em Gaussian, ou seja, é criado no centro para os lados.
ps_distr_invgaussian: Aqui a distribuição é ao contrário, ou seja, dos lados para o centro.
3º Passo: Criar o emissor
Agora é só criar o código que emite as partículas. O código é part_emitter_burst. Ele tem essa estrutura:
- Código:
part_emitter_burst(ps,ind,parttype,number)
Pronto! Agora você pode criar seus efeitos sem mais dúvidas quanto aos códigos. Quem sabe, o próximo tutorial será sobre os atratores, as regiões que atraem as partículas.
Comenta ae, mano, demorou um bocado pra digitar tudo isso =P.
FLWS!
Última edição por The Games Never Finish... em Seg 11 Jul 2011, 10:36, editado 2 vez(es)
Mr. Kaleb- Games Ranking :
Notas recebidas : C
Data de inscrição : 07/09/2010
Reputação : 21
Número de Mensagens : 1400
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial]Partículas
WoW, seu tutorial está Ótimo! Com certeza será aprovado!
Há muito tempo que eu estava procurando um tutorial sobre partículas, e não achei nada. Muito obrigado pelo tutorial, e continue contribuindo para o fórum!
Há muito tempo que eu estava procurando um tutorial sobre partículas, e não achei nada. Muito obrigado pelo tutorial, e continue contribuindo para o fórum!
JV Justino- Games Ranking :
Notas recebidas : A+A
Data de inscrição : 07/12/2010
Reputação : 20
Número de Mensagens : 619
Prêmios :
x 0 x 13 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial]Partículas
Valeu cara, pensei que por ser grande, ninguém iria comentar =P, vi que me enganei, valeu, e que bom que gostou, explorei todo esse universo da partículas e provavelmente vou colocar mais tutoriais.
FLWS!
FLWS!
Mr. Kaleb- Games Ranking :
Notas recebidas : C
Data de inscrição : 07/09/2010
Reputação : 21
Número de Mensagens : 1400
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial]Partículas
Desde q usava o multimedia fusion eu tentava aprender sobre partículas. Agora vc vem com esse tuto fenomenal. Com toda a certeza será aprovado e merece até um premio de qualidade 100%. PARABÉNS e continue a fazer ótimos tutos.
Hatzo enkiri- Games Ranking :
Notas recebidas : B
Data de inscrição : 19/02/2009
Reputação : 7
Número de Mensagens : 226
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial]Partículas
Valeu hatzo! Espero que todos aprendam com ele e com certeza, eu continuarei postando mais tutoriais.
FLWS!
FLWS!
Mr. Kaleb- Games Ranking :
Notas recebidas : C
Data de inscrição : 07/09/2010
Reputação : 21
Número de Mensagens : 1400
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial]Partículas
Muito bom seu tutorial, bem explicado... Muita coisa eu já sabia mas o que eu não sabia era para servia o parametro wiggle, cria um efeito muito legal quando usar...
Great!
Great!
ricaun- Data de inscrição : 23/09/2008
Reputação : 9
Número de Mensagens : 169
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial]Partículas
Valeu riacaun, esse wiggle é muito bom mesmo, se você colocar 1 no wiggle do part_type_size, ele fica crescendo e descrescendo bem rápido, é muito legal mesmo.
Mr. Kaleb- Games Ranking :
Notas recebidas : C
Data de inscrição : 07/09/2010
Reputação : 21
Número de Mensagens : 1400
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» [Tutorial] Partículas
» [pedido]Tutorial Particulas em Drag and Drop
» Shapes de Partículas
» [Tutorial] 39dll Tutorial - Part II(Final)
» O que sao particulas
» [pedido]Tutorial Particulas em Drag and Drop
» Shapes de Partículas
» [Tutorial] 39dll Tutorial - Part II(Final)
» O que sao particulas
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos