Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Animar o último coração Tópico resolvido

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Christian
Membro
Membro
Reações: 0
Mensagens: 75

Animar o último coração

Mensagem por Christian » Ter Mai 19, 2020 12:32 am

Fala galera, de boas?
Minha dúvida é a seguinte: como faço para animar sempre o último coração da barra de vidas?
Meu código tá assim:

Create event: vidas = 2;

Draw event:
for (i=0; i<=vidas; i++)
{
draw_sprite_ext(sprite_index,image_index,x+i*sprite_get_width(spr_coracao)+16, y, 1, 1, 0, image_blend, 1);
}
Consigo desenhar os três corações na tela, mas gostaria que sempre o último coração fosse animado.
Poderiam me ajudar?

Avatar do usuário
Chuaschinai
Colaborador
Colaborador
Reações: 6
Mensagens: 198

Re: Animar o último coração

Mensagem por Chuaschinai » Ter Mai 19, 2020 10:30 am

Levando em consideração que você já possua a animação do coração, basta fazer desta forma:

Código: Selecionar todos

// Draw event
for (var i = 0; i < vidas; ++i) {
 draw_sprite_ext(sprite_index, (i < vidas-1) ? 0 : image_index, x+i*sprite_get_width(spr_coracao)+16, y, 1, 1, 0, image_blend, 1);
}
Ao invés de utilizar o image_index diretamente no subimg do draw_sprite, você pode usar uma condicional ternária, que funciona como um if e else em uma única linha de comparação:

Veja as diferenças:

Código: Selecionar todos

// Operador Ternário
(i < vidas-1) ? 0 : image_index;

// Condicional comum:
if(i < vidas-1){
 return 0;
}else{
 return image_index;
}
Quando você necessitar de mais de uma animação em um objeto, você precisará de alguma forma fazer alguma "gambiarra", pois o image_index é referente a sprite linkada ao objeto e somente a ela.

Avatar do usuário
Christian
Membro
Membro
Reações: 0
Mensagens: 75

Re: Animar o último coração

Mensagem por Christian » Ter Mai 19, 2020 11:14 am

Isso é bem interessante.
Coloquei o operador ternário no GM:S 1 e dá erro. Ksks

Avatar do usuário
Chuaschinai
Colaborador
Colaborador
Reações: 6
Mensagens: 198

Re: Animar o último coração  Tópico resolvido

Mensagem por Chuaschinai » Ter Mai 19, 2020 11:17 am

Vish kkkk, usa então da forma comum.

Código: Selecionar todos

for (var i = 0; i < vidas; ++i) {
var subimg = 0;
if(i < vidas-1){
 subimg = 0;
}else{
 subimg = image_index;
}
 draw_sprite_ext(sprite_index, subimg, x+i*sprite_get_width(spr_coracao)+16, y, 1, 1, 0, image_blend, 1);
}

Avatar do usuário
Christian
Membro
Membro
Reações: 0
Mensagens: 75

Re: Animar o último coração

Mensagem por Christian » Ter Mai 19, 2020 6:43 pm

Cara, deu super certo!!!! Muito obrigado!!!
Passei 3 dias tentando animar o coração. Obrigado de verdade!!! Cê é um mito!!!

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes