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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 09/12/2011
Número de Mensagens : 55
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

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

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:
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 07/09/2010
Número de Mensagens : 1400
Insígnias de JAM :

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

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

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

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
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

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

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

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

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)

avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 09/12/2011
Número de Mensagens : 55
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

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

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
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

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

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

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

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?
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 09/12/2011
Número de Mensagens : 55
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 1
Ver perfil do usuário

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

em Qua 03 Jul 2013, 13:52
Muito irregular, na verdade é um personagem, é possível faze-lo com surfaces?
Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

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

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

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

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.
avatar
Data de inscrição : 10/07/2013
Número de Mensagens : 5
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

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

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 );

Conteúdo patrocinado

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

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