Conectar-se
Quem está conectado
21 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 21 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 01/02/2013
Número de Mensagens : 4
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Dano de queda

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
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 30/07/2011
Número de Mensagens : 928
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 47

Prêmios
   : 0
   : 0
   : 1
Ver perfil do usuáriohttp://luizpontes.tk/

Re: Dano de queda

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!
avatar
Data de inscrição : 01/02/2013
Número de Mensagens : 4
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Dano de queda

em Sex 01 Fev 2013, 21:53
Obrigado funcionou direitinho Smile

Só que ele sempre perde o mesmo tanto de vida Sad
avatar
Ranking : Nota C
Notas recebidas : C
Data de inscrição : 30/07/2011
Número de Mensagens : 928
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 47

Prêmios
   : 0
   : 0
   : 1
Ver perfil do usuáriohttp://luizpontes.tk/

Re: Dano de queda

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á.
Ranking : Nota C
Notas recebidas : C+B
Data de inscrição : 26/07/2008
Número de Mensagens : 6037
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 288

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: Dano de queda

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!
avatar
Data de inscrição : 01/02/2013
Número de Mensagens : 4
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

Re: Dano de queda

em Sex 01 Fev 2013, 22:17
Obrigado a todos ajudou muito quando meu jogo estiver pronto trarei ele aqui pro forum ;)
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum