Últimos assuntos
» CR - Concurso Relâmpago!!
por Willy Ter 18 Jul 2017, 17:11

» 3D:como rodar a camara em horizontal?
por Cambalinho Ter 18 Jul 2017, 15:09

» [Resolvido] pode explicar a d3d_set_projection()?
por Cambalinho Ter 18 Jul 2017, 11:28

» Escrever a resposta certa muda de room
por PedroX Seg 17 Jul 2017, 21:46

» Nota de esclarecimento - GMBR voltou!
por Mentos e Coca-cola Seg 17 Jul 2017, 17:05

» [CR] Campo Minado
por Katerp Dom 16 Jul 2017, 23:09

» [CR] The Bazooka Cat
por Tedi Ripper Dom 16 Jul 2017, 23:01

» Como melhorar um protótipo(Design)
por lolandoplayer Dom 16 Jul 2017, 22:56

» Diminuir velocidade ao arrastar objeto
por LwysF Dom 16 Jul 2017, 17:33

» Ajuda para mecanismo do jogo
por Willy Dom 16 Jul 2017, 15:54

Estatísticas
Temos 12700 usuários registrados
O último usuário registrado atende pelo nome de Eduardo Gomes

Os nossos membros postaram um total de 220918 mensagens em 30411 assuntos

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)
avatar
luxtrike

Data de inscrição : 18/08/2009
Número de Mensagens : 32
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   :
   :
   :

Ver perfil do usuário

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