[Resolvido]Extrair parte da sprite

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

Resolvido [Resolvido]Extrair parte da sprite

Mensagem por Super Maker em Seg 25 Jun 2012, 20:23

Oi pessoal!
Quero resolver um probleminha aqui da maneira mais viável.
Eu sei como tirar parte da sprite e com ela criar um novo sprite. O que quero é que com essa sprite extraida seja feito um processo de transparencia em algumas partes das bordas.
A imagem abaixo mostra um exemplo...

Entendem?
Eu quero tirar parte da sprite com um formato e dar transparencia a borda pra poder mostrar oque há em baixo.
Quero fazer isso sem usar dll e nem extenções. Com GML.
Alguém sabe como fazer?

***Editado***
Uma ideia pra resolver isso de outra forma eu coloque na ultima postagem desse tópico...
Eu falei:
Se pelo menos alguém postar aqui, um exemplo de como fundir duas sprites. Eu posso me virar com o resto.


Última edição por Super Maker em Ter 26 Jun 2012, 20:13, editado 2 vez(es) (Razão : Resolvido)

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Extrair parte da sprite

Mensagem por edeg em Seg 25 Jun 2012, 20:26

deixar o fundo transparente se for vai na sprite e clika em edit sprite da doi clikes na fotinha a ser retirado o fundo e tecle ctrl + shift + e

ai clika na cor da imagem da esquerda e veja como fica na direita ai so clike em ok

edeg

Número de Mensagens : 164
Data de inscrição : 24/05/2012
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Extrair parte da sprite

Mensagem por Super Maker em Seg 25 Jun 2012, 20:52

Não amigo. Não quero fazer isso no editor de imagens.
Quero fazer usando scripts de GML.
O jogo precisa disso.

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Extrair parte da sprite

Mensagem por edeg em Seg 25 Jun 2012, 21:03

ai n sei

edeg

Número de Mensagens : 164
Data de inscrição : 24/05/2012
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Extrair parte da sprite

Mensagem por Super Maker em Seg 25 Jun 2012, 21:43

Se pelo menos alguém postar aqui, um exemplo de como fundir duas sprites. Eu posso me virar com o resto.

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Extrair parte da sprite

Mensagem por Mentos e Coca-cola em Seg 25 Jun 2012, 22:04

o jeito mais simples é fazer o ovo sem a parte, então faz a parte que é tirada e junta na parte do ovo (acho que é um ovo),mas assim teria que tirar a Grid, acho eu :-), mas, é o mais simples, se era isso que voce queria
Abraço, Mentos e coca-cola

Mentos e Coca-cola

Ranking : Nota D
Número de Mensagens : 627
Idade : 18
Data de inscrição : 30/06/2010
Notas recebidas : D
Reputação : 15
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Extrair parte da sprite

Mensagem por Adriano Heartless em Seg 25 Jun 2012, 22:11

Bom eu faria da seguinte forma.... não entendi muito bem mais vamos lá

Criaria 2 sprite..o normal e o outro com a transparencia

depois criaria 2 objetos

bola

bola_transparente

um seria a bola e o outro seria a bola com a transparencia

alinharia os 2 perfeitamente usando as ccoordenada x e o y e colocaria um pra seguir o outro

step bola_transparente
x= bola.x+25 (+25 seria o ajuste pra fazer parecer 1 sprite só..ésó um exemplo)
y=bola.y+15



Adriano Heartless

Número de Mensagens : 95
Idade : 27
Data de inscrição : 12/02/2011
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://ganelse.blogspot.com.br/

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Extrair parte da sprite

Mensagem por Super Maker em Seg 25 Jun 2012, 23:04

Agradeço por estarem tentando ajudar, mas não é nada disso pessoal. Eu to querendo algo mais complexo e dinâmico.
Editor de imagens? No
GML? yes
Eu quero fazer tudo em GML.
Extrair uma parte da sprite fundir com outra de uma cor que fique por cima e tirar essa cor (tornar transparente) pra ficar como se estivesse recortada.

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Extrair parte da sprite

Mensagem por diego333 em Seg 25 Jun 2012, 23:57

um jeito de vc fazer isso seria criar uma surface ...
dar draw_clear_alpha(c_black,0) nela

EDIT:
vc desenha a parte da sprite dentro da surface com


draw_primitive_begin_texture(kind,texid);
draw_vertex_texture(x,y,xtex,ytex);

diego333

Número de Mensagens : 84
Data de inscrição : 06/10/2010
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Extrair parte da sprite

Mensagem por Super Maker em Ter 26 Jun 2012, 06:50

Eu quero tirar parte de uma sprite usando draw_sprite_part, colocar uma borda por cima pra fundir e depois deixar essa borda transparente. Apagar essa borda.
Na imagem eu mostrei o processo como deve ser.
Eu só quero saber como fazer de duas sprites uma e apagar certa cor sem ter que salvar pra depois fazer sprite_add removendo o backgroud, não. Quero fazer sem usar arquivos externos, semelhante a isso.


Última edição por Super Maker em Qua 27 Jun 2012, 18:45, editado 1 vez(es)

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Extrair parte da sprite

Mensagem por saim em Ter 26 Jun 2012, 08:59

Cara, eu não consigo ver suas imagens, então não sei se consigo te ajudar. O que eu sei que dá pra fazer está implícito nos meus tutoriais a respeito de surfaces e blend modes. Se você tem uma mask branca pra remover da imagem, fica fácil:
- cria a surface e direciona o desenho pra ela
- desenha a imagem que será recortada
- passa o blend mode pra bm_subtract
- desenha a mask branca (que eu gosto de chamar de "tesoura")
- cria uma nova sprite a partir da surface (esse é o resultado que você quer chegar)
- volta o blend mode pro normal e volta a desenhar na tela do jogo
- elimina a surface

Existe um tutorial (não é aqui, acho que é na gmlScripts.com) que te ensina a fazer uma versão tons-de-cinza de um sprite colorido. Ele usa uma função (acho que é sprite_set_alpha_from_sprite, mas não tenho certeza), que eu não sei como funciona, mas é um tipo de blending. Se você for fera, talvez consiga usar o mesmo princípio pra excluir uma única cor da imagem.
Se for isso o que você quer, dê uma procurada por lá. Eu já quebrei a cabeça com isso e não consegui. A única forma meia-boca que encontrei de eliminar uma cor foi percorrendo a imagem pixel-por-pixel e eliminando aqueles pixels cujo valor de hue estivessem dentro de um intervalo determinado, mas você pode imaginar o quanto isso é lento.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Extrair parte da sprite

Mensagem por PedroX em Ter 26 Jun 2012, 09:25

Fundir dois sprites é fácil:

Código:
surf = surface_create(sprite_debaixo_width, sprite_debaixo_height)
surface_set_target(surf)
draw_clear(c_white)
draw_sprite(sprite_debaixo, 0, 0, 0)
draw_sprite(sprite_decima, 0, 0, 0)
surface_reset_target()

Obs: para desenhar isso, use draw_surface().

Se isso já te servir, tudo bem, mas se não conseguir terminar, posta aí.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Extrair parte da sprite

Mensagem por Super Maker em Ter 26 Jun 2012, 20:12

Saim e Pedro...
Por enquanto vou tentar fazer com surfaces como vocês disserão. Eu queria evitar usar surfaces por que no jogo eu preciso fazer isso várias vezes simultaneamente, mas me parece que é a única saída.
Vou analizar aqui e dou um edite.
Obrigado pessoal!

***Editado***
A ideia de vocês dois, Saim e Pedro deu certo.
Fiz uma engine pra mostrar o que eu tava querendo fazer: LINK

Obrigado aos dois!
Podem trancar o tópico.

Super Maker

Número de Mensagens : 646
Idade : 33
Data de inscrição : 09/07/2011
Reputação : 6
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: [Resolvido]Extrair parte da sprite

Mensagem por Conteúdo patrocinado Hoje à(s) 07:59


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