Dúvida sobre draw_surface [Resolvido]

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

Dúvida sobre draw_surface [Resolvido]

Mensagem por luxtrike em Qua 16 Set 2009, 11:49

Gostaria de saber se é possível desenhar uma surface com partes transparentes por cima da room.
Já tentei de todo jeito, mas não consegui, tb não achei nada sobre isso aqui no forum.

Com isso eu quero fazer um Fog of War pro meu jogo, onde o mapa começa todo preto e conforme as unidades vão passando o mapa vai sendo revelado!
Detalhe: O mapa é diretamente desenhado na room e a surface vai por cima, tipo: mapa no depth=0 e a surface no depth=-1

Oque eu tentei fazer?
criei um objeto chamado obj_fog
coloquei no evento create dele:
Código:
 global.fogid=surface_create(640,480)
 surface_set_target(global.fogid)
 cor=make_color_rgb(0,0,0)
 //cor=c_white
 draw_rectangle_color(0,0,640,480,cor,cor,cor,cor,false)
 surface_reset_target()

depois coloquei nos eventos Game end,Room end e Close button:
Código:
surface_free(global.fogid)

depois no evento Draw:
Código:
if (mouse_check_button(mb_left)) {
 surface_set_target(global.fogid)
 cor=make_color_rgb(255,255,255)
 //cor=c_white
 //draw_set_alpha(0)
 draw_circle_color(mouse_x,mouse_y,50,cor,cor,false)
 surface_reset_target()
}
cor=make_color_rgb(255,255,255)
draw_surface_ext(global.fogid,0,0,1,1,0,cor,1)

e claro coloquei o objeto na room!!!

ao testar esse code vcs irão ver uma janela com o fundo preto e ao clicar com mouse aparece um circulo branco, será q tem como deixar esse circulo transparente?

Valeu! Smile

-------------------------------------------------------------------------------------------------------------------------------------------------
maravilha!!!
muito obrigado Capitão Commando
funcionou perfeitamente do jeito que eu queria.
vou colocar seu nick nos créditos do jogo


Última edição por luxtrike em Qui 17 Set 2009, 09:07, editado 1 vez(es) (Razão : Dúvida resolvida graças ao Capitão Commando)

luxtrike

Número de Mensagens : 32
Idade : 33
Data de inscrição : 18/08/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Dúvida sobre draw_surface [Resolvido]

Mensagem por Convidad em Qua 16 Set 2009, 22:13

Amigo, eu fiz algumas poucas alterações e funcionou.

No evento Create:

Código:
global.fogid=surface_create(640,480)
surface_set_target(global.fogid)
cor=c_white;
draw_rectangle_color(0,0,640,480,cor,cor,cor,cor,false)
surface_reset_target()

Nos eventos Game End, Room End e outros...

Código:
surface_free(global.fogid)

No evento Draw:

Código:
if (mouse_check_button(mb_left)) {
surface_set_target(global.fogid)
cor=c_black;
draw_circle_color(mouse_x,mouse_y,50,cor,cor,false)
surface_reset_target()
}
cor=c_white;
draw_set_blend_mode(bm_subtract);
draw_surface_ext(global.fogid,0,0,1,1,0,cor,1)
draw_set_blend_mode(bm_normal);

Boa sorte! [:¬)]
Capitão Commando.

Convidad
Convidado


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