Dano de queda

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Dano de queda

Mensagem por Coyote9 em Sex 01 Fev 2013, 21:06

Eu gostaria de saber como colocar um dano de queda equivalente a velocidade de quando meu personagem toca o chão.

EX:o personagem cai de uma altura de 5 metros com uma aceleração de 1 m/s então ele sofrerá um dano de 5(5*1) pontos de vida.

Se alguém puder postar um exemplo seguindo essa logica ficaria agradecido Smile

Coyote9

Número de Mensagens : 4
Data de inscrição : 01/02/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Dano de queda

Mensagem por luiz_eldorado em Sex 01 Fev 2013, 21:33

Se você já estiver usando aceleração com o gravity ou vspeed, você pode usar o vspeed quando ele tocar o solo para perder esse tanto de vida. Exemplo de colisão com o solo:
Código:
vida-=vspeed*(100/16);
vspeed=0;
move_contact_solid(270,room_width);
Deve funcionar.
Mas nesse caso não deve haver limite para a velocidade que ele cai. Não consegui calcular o máximo de metros/pixeis de que ele pode cair, mas modifique os valores para ver qual fica melhor.

Até menos!

luiz_eldorado

Ranking : Nota C
Número de Mensagens : 928
Idade : 17
Data de inscrição : 30/07/2011
Notas recebidas : C
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://luizpontes.tk/

Voltar ao Topo Ir em baixo

Re: Dano de queda

Mensagem por Coyote9 em Sex 01 Fev 2013, 21:53

Obrigado funcionou direitinho Smile

Só que ele sempre perde o mesmo tanto de vida Sad

Coyote9

Número de Mensagens : 4
Data de inscrição : 01/02/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Dano de queda

Mensagem por luiz_eldorado em Sex 01 Fev 2013, 22:04

Deve ser porque a velocidade da queda é sempre a mesma. Procure esta parte do código (exemplo) e remova:
Código:
if vspeed>8 {
vspeed=8;
}
Porque assim, a velocidade poderá ser maior que 8. Caso não funciona, tente usar o debug pra ver em quanto o vspeed está.

luiz_eldorado

Ranking : Nota C
Número de Mensagens : 928
Idade : 17
Data de inscrição : 30/07/2011
Notas recebidas : C
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

http://luizpontes.tk/

Voltar ao Topo Ir em baixo

Re: Dano de queda

Mensagem por PedroX em Sex 01 Fev 2013, 22:08

Qual o código que faz ele cair (gravidade)?

O código acima faz ele perder vida mesmo que caia de pequenas alturas.

Algo mais apropriado seria:

Código:
if (vspeed > 8) vida -= vspeed;

Se você quiser ter um controle ainda maior, poderia basear na altura:

Código:
h = sqr(vspeed)*0.5/gravity //se a gravity for 1, use: h = sqr(vspeed)*0.5

if (h > 100) //caiu de uma altura maior que 100 pixels
{
vspeed -= h*0.2; //por exemplo, se caiu de uma altura de 150 pixels, vai perder 30 de vida
}
Até mais!

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: Dano de queda

Mensagem por Coyote9 em Sex 01 Fev 2013, 22:17

Obrigado a todos ajudou muito quando meu jogo estiver pronto trarei ele aqui pro forum ;)

Coyote9

Número de Mensagens : 4
Data de inscrição : 01/02/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Dano de queda

Mensagem por Conteúdo patrocinado Hoje à(s) 16:39


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum