Página 1 de 1
Animar o último coração
Enviado: Ter Mai 19, 2020 12:32 am
por Christian
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?
Re: Animar o último coração
Enviado: Ter Mai 19, 2020 10:30 am
por Chuaschinai
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.
Re: Animar o último coração
Enviado: Ter Mai 19, 2020 11:14 am
por Christian
Isso é bem interessante.
Coloquei o operador ternário no GM:S 1 e dá erro. Ksks
Re: Animar o último coração Tópico resolvido
Enviado: Ter Mai 19, 2020 11:17 am
por Chuaschinai
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);
}
Re: Animar o último coração
Enviado: Ter Mai 19, 2020 6:43 pm
por Christian
Cara, deu super certo!!!! Muito obrigado!!!
Passei 3 dias tentando animar o coração. Obrigado de verdade!!! Cê é um mito!!!