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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 13/05/2012
Número de Mensagens : 275
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4
Ver perfil do usuáriohttp://www.legioncrafters.tk

Desenhar sprite dentro da mask

em Qui 11 Jul 2013, 16:30
Eai ,acho que o titulo ja explica, vim aqui perguntar se ha um jeito de desenhar o sprite apenas dentro da mask, recortar oque estiver fora , assim vc poderia fazer um sistema de 'skins' para o player no jogo e impedir que fossem colocadas imagens pelos jogadores muito fora do padrão com tamanho exagerado etc.. será que da pra fazer isso?
vlw.


Última edição por Esaucm98 em Sex 12 Jul 2013, 20:42, editado 1 vez(es)
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: Desenhar sprite dentro da mask

em Qui 11 Jul 2013, 17:05
Dá sim. Você vai usar surfaces e blend modes.
- Primeiro, crie a mask em branco.
- numa surface, desenhe a mask
- coloque o blend mode pra draw_set_blend_mode_ext(bm_dest_alpha, bm_zero)
- desenhe a sprite
- crie a nova sprite a partir da surface
- volte o blend mode pro normal, volte o draw pra fora da surface, elimine a surface... enfim, jogue o lixo fora.
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 13/05/2012
Número de Mensagens : 275
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4
Ver perfil do usuáriohttp://www.legioncrafters.tk

Re: Desenhar sprite dentro da mask

em Sex 12 Jul 2013, 01:40
eai saim, eu tentei fazer mas não deu certo acho que eu devo ter feito alguma coisa errada.
Enfim eu vou tentar ver oque eu fiz de errado se der certo eu dou edit aqui. vlw.
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: Desenhar sprite dentro da mask

em Sex 12 Jul 2013, 14:10
Mostre o que fez, mesmo dando errado. Se eu encontrar o erro, posso corrigir.
avatar
Ranking : Nota B
Notas recebidas : C + C + B
Data de inscrição : 28/07/2012
Número de Mensagens : 1281
Insígnias de JAM :

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

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

Re: Desenhar sprite dentro da mask

em Sex 12 Jul 2013, 14:30
Esaucm98 - Você entendeu o que o saim falou? Porque parece meio complicado caso você não saiba as funções usadas.
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 13/05/2012
Número de Mensagens : 275
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4
Ver perfil do usuáriohttp://www.legioncrafters.tk

Re: Desenhar sprite dentro da mask

em Sex 12 Jul 2013, 16:13

Código:

surf=surface_create(32,32)
surface_set_target(surf);
draw_sprite(spr_mask,image_index,x,y);
draw_set_blend_mode_ext(bm_dest_alpha, bm_zero);
draw_sprite(spr_sprite,image_index,x,y);
draw_set_blend_mode(bm_normal);
surface_reset_target();
sprite=sprite_create_from_surface(surf,x,y,32,32,true,false,16,16);
surface_free(surf);
sprite_index=sprite
Draw
Código:

draw_sprite(sprite_index,image_index,x,y);

Foi mais ou menos isso que eu fiz
Eu entendo o basico de surfaces.
avatar
Ranking : Nota B
Notas recebidas : C + C + B
Data de inscrição : 28/07/2012
Número de Mensagens : 1281
Insígnias de JAM :

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

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

Re: Desenhar sprite dentro da mask

em Sex 12 Jul 2013, 20:26
O código está quase pronto.
Você colocou coordenada x,y , isso não pode acontecer pois a surface é uma tela nova de tamanho 32x32, use 0,0.

Bom você pode estourar a memória do seu jogo se não deletar a sprite, e usar o memoryclean(dll) ou então...
Você podia fazer tudo no draw pra não precisar de sprite. Usando surface_draw.

Deixe no Draw
Código:

surf=surface_create(32,32);
surface_set_target(surf);
draw_sprite(spr_mask,image_index,0,0);//<Nova tela, nova coordenada
draw_set_blend_mode_ext(bm_dest_alpha, bm_zero);
draw_sprite(spr_sprite,image_index,0,0);//<Nova tela nova coordenada
draw_set_blend_mode(bm_normal);
surface_reset_target();
draw_surface(surf,x,y);
surface_free(surf);
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 13/05/2012
Número de Mensagens : 275
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4
Ver perfil do usuáriohttp://www.legioncrafters.tk

Re: Desenhar sprite dentro da mask

em Sex 12 Jul 2013, 20:41
Eu consegui ! obrigado.

Você colocou coordenada x,y , isso não pode acontecer pois a surface é uma tela nova de tamanho 32x32, use 0,0.
Eu não sabia , vlw !
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