Conectar-se
Quem está conectado
24 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 24 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 18/08/2009
Número de Mensagens : 32
Insígnias de JAM :

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

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

Dúvida sobre draw_surface [Resolvido]

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)
Convidad
Convidado

Re: Dúvida sobre draw_surface [Resolvido]

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.
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