[duvida] transição diferente

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[duvida] transição diferente

Mensagem por Roger Jr em Sab 20 Ago 2011, 13:12

eu queria fazer uma transição/efeito para mudar de room estilo desenho animado! com uma bolinha e um espaço preto em volta...

Roger Jr

Ranking : Nota D
Número de Mensagens : 395
Data de inscrição : 15/07/2010
Notas recebidas : C+D+D
Reputação : -1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

http://www.telepum.com

Voltar ao Topo Ir em baixo

Re: [duvida] transição diferente

Mensagem por Super Games em Sab 20 Ago 2011, 13:15

Se eu não me engano, existe um tutorial que enscina isto, vou procurar e vou dar um edit.

Super Games

Ranking : Nota D
Número de Mensagens : 2704
Idade : 18
Data de inscrição : 10/06/2010
Notas recebidas : D
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [duvida] transição diferente

Mensagem por Markituh em Sab 20 Ago 2011, 14:37

Google escreveu:Você quis dizer: Efeito estilo Mário que quando termina a fase um círculo vai se fechando em volta do Mário?
Bom, se for isso, tem dois métodos de fazer. Um é por blending modes, outro é "no braço". Mas talvez no braço seja difícil, então é melhor usar blending modes. O saim postou aqui no fórum um tutorial falando disso:
Código:
http://gmbr.forumeiros.com/t16940-tutorial-blend-modes?highlight=blending+modes
Abraços!

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [duvida] transição diferente

Mensagem por Roger Jr em Sab 20 Ago 2011, 14:41

Markituh escreveu:
Google escreveu:Você quis dizer: Efeito estilo Mário que quando termina a fase um círculo vai se fechando em volta do Mário?
Bom, se for isso, tem dois métodos de fazer. Um é por blending modes, outro é "no braço". Mas talvez no braço seja difícil, então é melhor usar blending modes. O saim postou aqui no fórum um tutorial falando disso:
Código:
http://gmbr.forumeiros.com/t16940-tutorial-blend-modes?highlight=blending+modes
Abraços!

Não teria um tuto mais simples ensinando o que eu quero (Efeito estilo Mário que quando termina a fase um círculo vai se fechando em volta do Mário) eu não entendi esse que me passou!

Roger Jr

Ranking : Nota D
Número de Mensagens : 395
Data de inscrição : 15/07/2010
Notas recebidas : C+D+D
Reputação : -1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

http://www.telepum.com

Voltar ao Topo Ir em baixo

Re: [duvida] transição diferente

Mensagem por Markituh em Sab 20 Ago 2011, 15:18

Não teria um tuto mais simples ensinando o que eu quero (Efeito estilo Mário que quando termina a fase um círculo vai se fechando em volta do Mário) eu não entendi esse que me passou!
Bom, se você ler tudo e com calma da pra entender. Tome nota: o blend mode bm_src_alpha é o que faz com que o círculo mostre a área por trás do preto.
Código:
if radius>0
radius-=5
// radius é um variável que tem seu valor igual a:
// min(rview_wview[0],view_hview[0]). Ou seja, o raio vai ser de acordo com o tamanho da view

draw_set_color(c_black) // Cor preta
// Rectângulo (parte preta)
draw_rectangle(view_xview[0],view_yview[0],view_xview[0]+view_wview,view_yview[0]+view_hview[0],false)
draw_set_blend_mode(bm_src_alpha) // blend mode bm_scr_alpha
draw_set_color(background_color) // Cor da room
draw_circle(obj_player.x,obj_player.y,radius,false) // Círculo
Não sei muito bem de blend modes, este é bastante simples. Se você ler e entender o tutorial pode saber como fazer o círculo que "mostra as coisas" sem se importar com draw_set_color.

Se não me engano, parece que o Biel postou um tutorial explicando essa exata funcionalidade. Mas não me lembro direito o nome do tópico pra pesquisar na busca =/

SUPER EDIT
Acabei de descobrir que fazer no braço não é tão difícil assim. Mantendo o mesmo esquema do radius, basta apenas usar um loop for que desenha o círculo, só que sem preenchimento. Preservando o efeito do tio Mário:
Código:
if radius>0
radius-=5

draw_set_color(c_black) // Cor preta
for (i=radius;i<min(view_wview[0],view_hview[0]);i+=0.5)
{
draw_circle(obj_player.x,obj_player.y,i,true) // Círculo
}
Você se pergunta: ué! Por que 0.5? 0.5 porque 1 o círculo fica todo estragado, teste para ver. Outra coisa, se achar que o círculo está meio "quadrado", há uma função que define a precisão do círculo, ou seja, o quão ele é redondo. Só não me lembro dela agora(ou parece que ela foi removida)

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [duvida] transição diferente

Mensagem por saim em Qua 24 Ago 2011, 17:04

Eu usaria surfaces. Acho que o exemplo do Markituh usa, mas ele esqueceu de dizer.
1 - cria uma surface do tamanho da tela (create event)
2 - recorta um círculo com centro no objeto desejado (step ou draw event)
3 - mostra a surface por cima de tudo (draw event)
4 - repete passos 2 e 3, diminuindo o raio
>create<
Código:
efeito=surface_create(room_width, room_height); //pode trocar por view_wview, view_hview, se estiver usando views
cor=c_black //só pro código a seguir ficar mais flexível
p=obj_player; //quem que o círculo vai seguir (TEM que ter uma instância)
raio=max(room_width, room_height); //também pode substituir por view
draw_set_circle_precision(64)
>draw<
Código:
alphaVelho=draw_get_alpha()
draw_set_alpha(1);
surface_set_target(efeito);
draw_clear(cor); //pinta a surface inteira
draw_set_blend_mode(bm_subtract); //passa a apagar, ao invés de desenhar
draw_circle(p.x, p.y, raio, 0) //recorta o círculo
surface_reset_target();
draw_surface(efeito, 0, 0); //tô com a impressão que esqueci algum argumento, aqui
raio-=5;
if raio<=0{
room_goto_next()
surface_free(efeito);} //arranca ela da memória
draw_set_alpha(alphaVelho);

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: [duvida] transição diferente

Mensagem por Roger Jr em Qui 25 Ago 2011, 18:45

Eu descubri um jeito BEM BEM BEM BEMBEM BEM BEM BEMBEM BEM BEM BEMBEM BEM BEM BEMBEM BEM BEM BEMBEM BEM BEM BEMBEM BEM BEM BEMBEM BEM BEM BEMBEM BEM BEM BEMBEM BEM BEM BEMBEM BEM BEM BEMBEM BEM BEM BEMBEM BEM BEM BEMBEM BEM BEM BEMBEM BEM BEM BEM

mais fácil: Eu crio um sprite com o 4x da Room e um circulo fechando e centralizo; crio um objeto com esse sprite e no animation end eu coloco para ir para room desejada!

pensei nisso com o texto do saim vlw!

Pode Trancar!

Roger Jr

Ranking : Nota D
Número de Mensagens : 395
Data de inscrição : 15/07/2010
Notas recebidas : C+D+D
Reputação : -1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

http://www.telepum.com

Voltar ao Topo Ir em baixo

Re: [duvida] transição diferente

Mensagem por saim em Sex 26 Ago 2011, 16:09

Isso é um pouco mais fácil, mas esse sprite vai deixar o arquivo do seu jogo bem maior.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: [duvida] transição diferente

Mensagem por Luiz A. Oliveira em Sex 26 Ago 2011, 16:25

Vc cria uma sprite preta do tamanho da sua view e com um circulo transparente no mei o e centralize-a, crie um objeto e deixe o depth dele maior que o de tudo!
No create digite:
Código:
x = obj_player.x;
y = obj_player.y;
image_xscale = 2;
image_yscale = 2;
Ja no step:
Código:
if (image_xscale > 0)
    {
        image_xscale-=0.06
        image_yscale-=0.06
    }
move_towards_point(obj_player.x,obj_player.y,3)
No room end:
Código:
draw_set_color(c_white)
instance_destroy()
E no draw:
Código:
draw_set_color(c_black);
draw_rectangle(view_xview,view_yview,x-(sprite_width/2),view_yview+view_hview,false)
draw_rectangle(x-(sprite_width/2),view_yview,x+(sprite_width/2),y-(sprite_height/2),false)
draw_rectangle(x+(sprite_width/2-2),view_yview,view_xview+view_wview,view_yview+view_hview,false)
draw_rectangle(x-(sprite_width/2),y+(sprite_height/2-3),x+(sprite_width/2),view_yview+view_hview,false)
draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,c_white,image_alpha)
Créditos ao Mystery_boy_maker!!!

Luiz A. Oliveira

Ranking : Nota C
Número de Mensagens : 914
Idade : 19
Data de inscrição : 08/09/2010
Notas recebidas : D-B-C
Reputação : 5
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://luizgm.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [duvida] transição diferente

Mensagem por Conteúdo patrocinado Hoje à(s) 19:16


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum