Obrigado por visitar a The Game Makers Brasil Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais. |
[RESOLVIDO]como posso calcular a distancia entre 2 objectos?
- Cambalinho
- Membro
- Reações: 0
- Mensagens: 59
[RESOLVIDO]como posso calcular a distancia entre 2 objectos?
eu ja tentei usar a point_distance(), mas não obtenho os resultados pretendidos :(
então como posso calcular a distancia entre 2 objectos?
então como posso calcular a distancia entre 2 objectos?
Editado pela última vez por Cambalinho em Ter Set 12, 2017 4:49 pm, em um total de 1 vez.
- Cambalinho
- Membro
- Reações: 0
- Mensagens: 59
Re: como posso calcular a distancia entre 2 objectos?
desculpa mas essa função não me ajuda :(
até a hipotenusa já calculei, mas obtenho valores grandes do que preciso e não são precisos :(
imagina que desenhas 1 linha entre 2 pontos, mas só precisas do comprimento da linha. como posso fazer isso?
até a hipotenusa já calculei, mas obtenho valores grandes do que preciso e não são precisos :(
imagina que desenhas 1 linha entre 2 pontos, mas só precisas do comprimento da linha. como posso fazer isso?
- Cambalinho
- Membro
- Reações: 0
- Mensagens: 59
Re: como posso calcular a distancia entre 2 objectos?
eu ja´entendi porque não me funciona.
eu não utilizo inimigos ou objectos muito pequenos, mas sim paredes grandes, por isso o ponto não serve se estou no meio da parede.
alguem me pode dar mais dicas, para resolver o problema?
eu não utilizo inimigos ou objectos muito pequenos, mas sim paredes grandes, por isso o ponto não serve se estou no meio da parede.
alguem me pode dar mais dicas, para resolver o problema?
- Cambalinho
- Membro
- Reações: 0
- Mensagens: 59
Re: como posso calcular a distancia entre 2 objectos?
finalmente consegui:
muito obrigado a todos pela ajuda
Código: Selecionar todos
//Collision 3D script(como é normal, pode ser alterado para receber só as instancias, mas fica ao vosso critério):
///Collision3D(PosX1, PosY1, PosZ1, W1, H1, P1, PosX2, PosY2, PosZ2, W2, H2, P2);
PosX1=argument0;
PosY1=argument1;
PosZ1=argument2;
W1=argument3;
H1=argument4;
P1=argument5;
PosX2=argument6;
PosY2=argument7;
PosZ2=argument8;
W2=argument9;
H2=argument10;
P2=argument11;
if ((PosX1 < (PosX2 + W2)) && (PosX2 < (PosX1 + W1)))
{
if ((PosY1 < (PosY2 + H2)) && (PosY2 < (PosY1 + H1)))
{
if ( (PosZ1<(PosZ2+P2)) && (PosZ2<(PosZ1+P1)))
{
return true;
}
}
}
return false;
//modo de usar:
inst = instance_nearest(x+cos(degtorad(direction)), y-sin(degtorad(direction)), objWall);//não é 100% fiavel :(
var dis = 0;
for(r=0;r<500;r++)
{
check_x = lengthdir_x(r,direction);
check_y = lengthdir_y(r,direction);
if(Collision3D(x+check_x,y+check_y,z,w,h,p,inst.x,inst.y,inst.z,inst.w,inst.h,inst.p)==true)
{
dis=r;
break;
}
}
distancewall=dis;
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitante