Como fazer uma luz (plataforma 2d) com esse script

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

Como fazer uma luz (plataforma 2d) com esse script

Mensagem por Isquilo_Roedor em Qui 30 Abr 2015, 22:24

1 - Eu tenho um obj_dark que realiza isso no DRAW (deixa escuro a tela)
Código:
draw_set_color(c_black)
draw_set_alpha(0.65);
draw_rectangle(view_xview[0],view_yview[0],view_xview[0]+view_wview[0],view_yview[0]+view_hview[0],false);
draw_set_alpha(1);

O meu jogo é 2d, de lado, estilo Mario Bros, e eu queria saber como fazer uma luz, tipo algo que retire esse alpha, entende, algo pra mostrar o mapa normal.

mais ou menos assim
http://imgur.com/9jrGOLn (link da imagem)

2 - Eu marquei com um quadrado amarelo os textos que que são exibidos na tela, como objetivo, kits medicos e tals, e eles são afetados pela escuridão, eu queria saber como faço para deixar eles claros, tipo o escuro não funcionar nas letras ali, o obj que uso para dar draw nesses textos é chamado de obj_draw e tem depth -3 enquanto o obj_dark depth -20.

Isquilo_Roedor

Ranking : Nota D
Número de Mensagens : 334
Idade : 17
Data de inscrição : 22/03/2012
Notas recebidas : E-E-D
Reputação : 18
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como fazer uma luz (plataforma 2d) com esse script

Mensagem por Susano em Sex 01 Maio 2015, 10:04

aqui vai, vou lhe dar um script fácil para usar blend_mode a partir de uma sprite
primeiramente crie um objeto, que vai ser a surface, nomeie ele   obj_surface_control, eu não vou explicar muito, caso queira explicação aqui está o turorial: http://gmbr.forumeiros.com/t16419-tutorial-surfaces

no create:

Surface=surface_create(room_width,room_height);

então eu criei uma surface, mais não a configurei, criei ela na room inteira (room_width,room_height)
create:
Surface=surface_create(room_width,room_height);
no step:
surface_set_target(Surface)

draw_clear_alpha(c_black,0.50); isto aqui vou explicar, o 0.50 coloca a opacidade que você quer da sombra
draw_set_blend_mode(bm_subtract)
draw_sprite(spr,0,seguir.x,seguir.y);  o "spr" coloque a spr de luz que você quer, a parte totalmente transparente da sprite sera pega pela sombra, e o "seguir" coloque onde você quer que a luz siga
exemplo de luz:

como pode ver neste exemplo, nos cantos do circulo é totalmente transparente, isto torna só o ciculo visivel
draw_set_blend_mode(bm_normal);
surface_reset_target();
step:
surface_set_target(Surface)

draw_clear_alpha(c_black,0.50);

draw_set_blend_mode(bm_subtract)

draw_sprite(spr,0,seguir.x,seguir.y);

draw_set_blend_mode(bm_normal);

surface_reset_target();

agora no draw:
draw:

draw_surface(Surf,0,0)

mais aconselho melhor você ler o tutorial do saim

Susano

Número de Mensagens : 101
Data de inscrição : 16/05/2014
Reputação : 31
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://indiemakersbr.forumeiros.com

Voltar ao Topo Ir em baixo

Re: Como fazer uma luz (plataforma 2d) com esse script

Mensagem por Isquilo_Roedor em Sex 01 Maio 2015, 14:33

Legal, funcionou mais ou menos, eu só não entendi essa linha

draw_sprite(spr_luz,0,seguir.x,seguir.y);

oque eu coloco no seguir? tipo não consegui captar

Isquilo_Roedor

Ranking : Nota D
Número de Mensagens : 334
Idade : 17
Data de inscrição : 22/03/2012
Notas recebidas : E-E-D
Reputação : 18
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como fazer uma luz (plataforma 2d) com esse script

Mensagem por Susano em Sab 02 Maio 2015, 12:29

foi mal, eu fiquei off e não deu para responder, o seguir.x e o seguir.y é o que você quer que siga, tipo, seguir o personagem, escreva o nome do personagem, como x é horizontal e y é vertical, tipo obj_player.x obj_player.y

Susano

Número de Mensagens : 101
Data de inscrição : 16/05/2014
Reputação : 31
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://indiemakersbr.forumeiros.com

Voltar ao Topo Ir em baixo

Re: Como fazer uma luz (plataforma 2d) com esse script

Mensagem por Isquilo_Roedor em Sab 02 Maio 2015, 16:24

Muito obrigado por toda ajuda, mas eu cheguei a uma conclusão que será melhor sem utilizar luzes, apenas deixar levemente escuro e um background escuro para ajudar, obrigado de qualquer forma

Isquilo_Roedor

Ranking : Nota D
Número de Mensagens : 334
Idade : 17
Data de inscrição : 22/03/2012
Notas recebidas : E-E-D
Reputação : 18
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como fazer uma luz (plataforma 2d) com esse script

Mensagem por Conteúdo patrocinado Hoje à(s) 18:26


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