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

lolandoplayer

Ver toda a lista


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

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

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

sombras da bola

em Ter 08 Fev 2011, 17:38
eu estou quase acabando a programação do jogo. Mas estou precisando de um efeito bem comum. Sabe o efeito "after image" de quando a bola passa, vem algumas outras mais apagadas como rastro? eu queria um desse para uma bola especial. Alguem conhece o efeito?
Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

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

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

Re: sombras da bola

em Qua 09 Fev 2011, 22:35
Use um array. Coloque isso no evento create, O efeito vai funcionar com qualquer sprite e você pode controlar o tamanho do rastro:

Código:
// Tamanho do rastro da sombra.
max_sombra := 30;

// Intensidade entre 0 e 1.
intensidade := 0.25;

 // Cor da sombra.
cor_sombra := c_white;

for ( t := 0 ; t <= max_sombra ; t += 1 )
begin
    // Propriedades da sombra:
    prev_sombra[t,0] := x;
    prev_sombra[t,1] := y;
    prev_sombra[t,2] := image_index;
    prev_sombra[t,3] := sprite_index;
    prev_sombra[t,4] := sign(image_xscale);
end


Coloque isso no evento End Step:

Código:
prev_sombra[0,0] := x;
prev_sombra[0,1] := y;
prev_sombra[0,2] := image_index;
prev_sombra[0,3] := sprite_index;
prev_sombra[0,4] := sign(image_xscale);

for ( t := max_sombra ; t > 0 ; t -= 1 )
begin
    prev_sombra[t,0] := prev_sombra[t-1,0];
    prev_sombra[t,1] := prev_sombra[t-1,1];
    prev_sombra[t,2] := prev_sombra[t-1,2];
    prev_sombra[t,3] := prev_sombra[t-1,3];
    prev_sombra[t,4] := prev_sombra[t-1,4];
end;

E esse código abaixo no Draw:

Código:

var opacidade;
opacidade := intensidade/max_sombra;

draw_set_blend_mode(bm_add);
for ( d = max_sombra ; d >= 0 ; d -= 1 )
begin
draw_sprite_ext(
        prev_sombra[d,3],
        floor(prev_sombra[d,2]),
        prev_sombra[d,0],
        prev_sombra[d,1],
        prev_sombra[d,4],
        image_yscale,
        image_angle,
        cor_sombra,
        intensidade - (opacidade * d)
        );
end;

draw_set_blend_mode(bm_normal);

// Aqui segue o desenho da instância, normalmente.

draw_sprite_ext(
        sprite_index,
        floor(image_index),
        x,
        y,
        image_xscale,
        image_yscale,
        image_angle,
        image_blend,
        image_alpha
        );
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: sombras da bola

em Qui 10 Fev 2011, 12:03
Dá uma olhada nesse tópico, tem uma pergunta bem parecida.
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