Efeito subtração
Oi gente
Será que vocês poderiam me ajudar com uma dúvida?
Eu quero fazer um efeito mais ou menos assim.
Em um jogo de luta temos dois personagens lutando, ai ele deu por exemplo 30 de dano e o hp do oponente é 60...só que em vez de já aparecer trinta (60-30) de uma vez eu queria q foi diminuindo de um em um sabe rápidamente até chegar nos 30....que nem no desenho yu gi oh.
Qual é a maneira mais prática de se fazer isto?
Desde já obrigado.
Será que vocês poderiam me ajudar com uma dúvida?
Eu quero fazer um efeito mais ou menos assim.
Em um jogo de luta temos dois personagens lutando, ai ele deu por exemplo 30 de dano e o hp do oponente é 60...só que em vez de já aparecer trinta (60-30) de uma vez eu queria q foi diminuindo de um em um sabe rápidamente até chegar nos 30....que nem no desenho yu gi oh.
Qual é a maneira mais prática de se fazer isto?
Desde já obrigado.
Robotizar
Curtidas 0
Respostas
Mitsuo_takaki
22/06/2003
Oi,
Não sei se vai servir, mas tenta colocar isso:
for i := 1 to (HpOponente - Dano) do
begin
HpOponente := HpOponente - 1;
Sleep(1000);
/*Para por 1.000 milissegundos, se quiser mais rápido é só alterar o
valor entre parêntesis.*/
end;
Este código irá subtrair 1 do Hp do oponente a cada 1 segundo até chegar no valor (HpOponente-Dano). Depois me diz se serviu ou não.
Mitsuo Takaki
Não sei se vai servir, mas tenta colocar isso:
for i := 1 to (HpOponente - Dano) do
begin
HpOponente := HpOponente - 1;
Sleep(1000);
/*Para por 1.000 milissegundos, se quiser mais rápido é só alterar o
valor entre parêntesis.*/
end;
Este código irá subtrair 1 do Hp do oponente a cada 1 segundo até chegar no valor (HpOponente-Dano). Depois me diz se serviu ou não.
Mitsuo Takaki
GOSTEI 0
Mitsuo_takaki
22/06/2003
Oi,
Desculpa, o código que enviei estava com um erro, não é possível alterar o valor do HpOponente enquanto o for está rodando. Troca o loop for por while:
i := 1
while i <= (HpOponente - Dano) do
begin
HpOponente := HpOponente - 1;
Sleep(1000);
/*Para por 1.000 milissegundos, se quiser mais rápido é só alterar o
valor entre parêntesis.*/
i := i + 1;
end;
Mitsuo Takaki
Desculpa, o código que enviei estava com um erro, não é possível alterar o valor do HpOponente enquanto o for está rodando. Troca o loop for por while:
i := 1
while i <= (HpOponente - Dano) do
begin
HpOponente := HpOponente - 1;
Sleep(1000);
/*Para por 1.000 milissegundos, se quiser mais rápido é só alterar o
valor entre parêntesis.*/
i := i + 1;
end;
Mitsuo Takaki
GOSTEI 0
Mitsuo_takaki
22/06/2003
Oi,
Mais um erro. :oops:
Tem que salvar o valor do HpOponente em uma variável para poder comparar com o i. Desse jeito pode utilizar o for.
i := 1
Aux := HpOponente - Dano;
[b:6e8a74008b]for[/b:6e8a74008b] i := 1 [b:6e8a74008b]to[/b:6e8a74008b] Aux [b:6e8a74008b]do[/b:6e8a74008b]
[b:6e8a74008b]begin[/b:6e8a74008b]
HpOponente := HpOponente - 1;
Sleep(1000);
/*[i:6e8a74008b]Para por 1.000 milissegundos, se quiser mais rápido é só alterar o
valor entre parêntesis.[/i:6e8a74008b]*/
[b:6e8a74008b]end;[/b:6e8a74008b]
Acho que agora não tem nenhum erro. :wink:
Mitsuo Takaki
Mais um erro. :oops:
Tem que salvar o valor do HpOponente em uma variável para poder comparar com o i. Desse jeito pode utilizar o for.
i := 1
Aux := HpOponente - Dano;
[b:6e8a74008b]for[/b:6e8a74008b] i := 1 [b:6e8a74008b]to[/b:6e8a74008b] Aux [b:6e8a74008b]do[/b:6e8a74008b]
[b:6e8a74008b]begin[/b:6e8a74008b]
HpOponente := HpOponente - 1;
Sleep(1000);
/*[i:6e8a74008b]Para por 1.000 milissegundos, se quiser mais rápido é só alterar o
valor entre parêntesis.[/i:6e8a74008b]*/
[b:6e8a74008b]end;[/b:6e8a74008b]
Acho que agora não tem nenhum erro. :wink:
Mitsuo Takaki
GOSTEI 0