[dúvi]Como fazer um sprite visível detro de outro?

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

[dúvi]Como fazer um sprite visível detro de outro?

Mensagem por rhaian em Qua 03 Jul 2013, 10:29

Olá pessoal, estou apenas finalizando as minhas dúvidas, após finaliza-las vou poder começar a responder a ajudar a galera no fórum heheh XD. Pois tenho assuntos pendentes com essas dúvidas, e ao resolve-los fico de tempo livre. emfim, gostaria de saber como posso fazer um sprite ficar visível dentro de outro?:

por exemplo:

rhaian

Ranking : Nota C
Número de Mensagens : 55
Idade : 17
Data de inscrição : 09/12/2011
Notas recebidas : C
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [dúvi]Como fazer um sprite visível detro de outro?

Mensagem por Mr. Kaleb em Qua 03 Jul 2013, 11:54

Tem um ótimo tutorial que o saim traduziu e postou aqui no fórum, sobre blend modes, acho que ele trata sobre essa questão que você está precisando.
Blend Modes

Mr. Kaleb

Ranking : Nota C
Número de Mensagens : 1400
Idade : 19
Data de inscrição : 07/09/2010
Notas recebidas : C
Reputação : 21
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [dúvi]Como fazer um sprite visível detro de outro?

Mensagem por PedroX em Qua 03 Jul 2013, 12:16

Para sprites retangulares, você precisa apenas fazer alguns cálculos.

Primeiramente, temos que desenhar o sprite que guardará o outro.
Código:
draw_sprite(Sprite1, 0, x, y)

Depois temos que desenhar o outro:

draw_sprite_part(qual_sprite, qual_frame, inicio_sprite_x, inicio_sprite_y, comprimento_sprite, largura_sprite, x_desenhar, y_desenhar)

Ficando assim:
Código:
draw_sprite_part(Sprite2, 0, (sprite_get_width(Sprite2)-sprite_width)/2, (sprite_get_height(Sprite2)-sprite_height)/2, sprite_width, sprite_height, x-sprite_xoffset, y-sprite_xoffset)


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

Re: [dúvi]Como fazer um sprite visível detro de outro?

Mensagem por rhaian em Qua 03 Jul 2013, 12:27

mas o sprite que quero não é retangular .-.. mas obrigado. pedrox. @ the games never finish, não é o que eu preciso. obriago pelas respostas

rhaian

Ranking : Nota C
Número de Mensagens : 55
Idade : 17
Data de inscrição : 09/12/2011
Notas recebidas : C
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [dúvi]Como fazer um sprite visível detro de outro?

Mensagem por PedroX em Qua 03 Jul 2013, 12:29

O sprite que limita o outro é que deve ser retangular. Isso não serve? Como seria? Teria alguma forma regular (quadrado, circulo, triângulo, pentágono)? Ou seria irregular?

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

Re: [dúvi]Como fazer um sprite visível detro de outro?

Mensagem por rhaian em Qua 03 Jul 2013, 13:52

Muito irregular, na verdade é um personagem, é possível faze-lo com surfaces?

rhaian

Ranking : Nota C
Número de Mensagens : 55
Idade : 17
Data de inscrição : 09/12/2011
Notas recebidas : C
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [dúvi]Como fazer um sprite visível detro de outro?

Mensagem por GameMakerTutoriais em Seg 15 Jul 2013, 10:37


Crie uma imagem em preto-e-branco com a forma exata que você quer. O conteúdo branco será o visível e o preto, invisível. As duas imagens (o sprite original e o preto-e-branco) devem ter as mesmas dimensões. Então, você pode usar esse código aqui (use apenas uma vez, no jogo inteiro):

Código:
sprite_set_alpha_from_sprite(sprite_original, mascara_preto_e_branco);

Isso vai deixar o sprite com o formato da imagem em p&B, mas não sei como isso vai influenciar nas colisões do seu jogo (caso esteja usando precise collision checking), já que não sei como ele está programado.

Também é possível com blend modes e surfaces porque eles vão funcionar como se estivessem "recortando a imagem". O "The Games Never Finish" postou o link para você. Eu só acrescentaria uma dica que é fazer todo o processo numa única surface.

É mais rápido pro Game Maker copiar o conteúdo da mesma surface pra mesma surface do que de uma pra outra. Você pode usar uma máscara em preto-e-branco (ou somente o alpha) pra fazer esse recorte (embora a função que eu postei seja mais fácil de usar), mas de nada adianta se você não entender o tutorial.

Leia lá e, qualquer dúvida, estamos a postos.

GameMakerTutoriais

Número de Mensagens : 800
Data de inscrição : 29/01/2011
Reputação : 26
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [dúvi]Como fazer um sprite visível detro de outro?

Mensagem por Marmitex em Seg 15 Jul 2013, 20:19

Usando surfaces da pra fazer assim :

Draw Event
surface = surface_create( 100 , 100 ).

surface_set_target( surface );
   draw_sprite( sprite preto , 0 , 0 ,0 );
   draw_set_blend_mode_ext( bm_dest_alpha , bm_zero );
   draw_sprite( sprite original , 0 , 0 , 0 );
   draw_set_blend_mode( bm_normal );
surface_reset_target();
draw_surface( surface , x , y );
surface_free( surface );


Marmitex

Número de Mensagens : 5
Data de inscrição : 10/07/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [dúvi]Como fazer um sprite visível detro de outro?

Mensagem por Conteúdo patrocinado Hoje à(s) 17:20


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