Página 1 de 1

Ajuda com sprites

Enviado: Ter Fev 26, 2019 10:49 pm
por DarlesLSF
Boa noite, estou fazendo o menu do meu jogo e eu estou na parte dos itens. No gráfico que mostra o hp atual / max hp e mana atual / max mp, utilizo esse código para que os valores atuais não ultrapassem seus máximos:

Código: Selecionar todos

/// checando vida e mana
if (global.hp_jogador > global.maxhp)
{
    global.hp_jogador = global.maxhp;
}
if (global.mp_jogador > global.maxmp)
{
    global.mp_jogador = global.maxmp;
}
Porém, cuidem os gráficos da vida e mana como agem quando utilizo um item:
https://www.youtube.com/watch?v=hvYdvKqjdtI&feature=youtu.be
Dá pra ver que os números aumentam e logo em seguida se igualam com seus máximos.
Como faço pra não acontecer essa mudança nos números da vida e mana?

Re: Ajuda com sprites

Enviado: Qua Fev 27, 2019 12:10 am
por None
Tem várias formas de fazer isso.
Uma é simplesmente colocando no final do código de aumentar a vida que
player.vida = min(player.vida, player.max_vida).

Isso tem que estar no código de aumentar a vida, assim você garante a limitação no mesmo frame, seu problema está acontecendo porque ele aumenta a vida DEPOIS de já ter criado a limitação, então ele só arruma no próximo frame (seu método de correção funciona tão bem quanto o meu, só sua ordem de código que não está boa)

Re: Ajuda com sprites

Enviado: Qua Fev 27, 2019 7:19 am
por DarlesLSF
None escreveu:Tem várias formas de fazer isso.
Uma é simplesmente colocando no final do código de aumentar a vida que
player.vida = min(player.vida, player.max_vida).

Isso tem que estar no código de aumentar a vida, assim você garante a limitação no mesmo frame, seu problema está acontecendo porque ele aumenta a vida DEPOIS de já ter criado a limitação, então ele só arruma no próximo frame (seu método de correção funciona tão bem quanto o meu, só sua ordem de código que não está boa)
No caso, esse é meu código:

Código: Selecionar todos

if (global.item_usado == 1)
        {
            global.hp_jogador += 50;
            global.pocoes -= 1;
        }
Se eu add o que tu falou, ficaria assim?

Código: Selecionar todos

if (global.item_usado == 1)
        {
            global.hp_jogador += 50;
            global.hp_jogador = min(global.hp_jogador, global.maxhp);
            global.pocoes -= 1;
        }

Re: Ajuda com sprites

Enviado: Qua Fev 27, 2019 9:41 am
por None
Isso mesmo