Conectar-se
Quem está conectado
22 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 21 Visitantes

theokof98

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota D
Notas recebidas : C+D+D
Data de inscrição : 15/07/2010
Número de Mensagens : 395
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : -1

Prêmios
   : 0
   : 1
   : 0
Ver perfil do usuáriohttp://www.telepum.com

[duvida] transição diferente

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...
avatar
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 10/06/2010
Número de Mensagens : 2704
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 10

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [duvida] transição diferente

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.
avatar
Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2184
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 106

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [duvida] transição diferente

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!
avatar
Ranking : Nota D
Notas recebidas : C+D+D
Data de inscrição : 15/07/2010
Número de Mensagens : 395
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : -1

Prêmios
   : 0
   : 1
   : 0
Ver perfil do usuáriohttp://www.telepum.com

Re: [duvida] transição diferente

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!
avatar
Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2184
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 106

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuário

Re: [duvida] transição diferente

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)
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: [duvida] transição diferente

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);
avatar
Ranking : Nota D
Notas recebidas : C+D+D
Data de inscrição : 15/07/2010
Número de Mensagens : 395
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : -1

Prêmios
   : 0
   : 1
   : 0
Ver perfil do usuáriohttp://www.telepum.com

Re: [duvida] transição diferente

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!
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 121

Prêmios
   : 1
   : 0
   : 3
Ver perfil do usuário

Re: [duvida] transição diferente

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.
avatar
Ranking : Nota C
Notas recebidas : D-B-C
Data de inscrição : 08/09/2010
Número de Mensagens : 914
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 5

Prêmios
   : 0
   : 0
   : 0
Ver perfil do usuáriohttp://luizgm.blogspot.com/

Re: [duvida] transição diferente

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!!!
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum