Como manter uma distancia X+ de um objeto a outro.

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

Como manter uma distancia X+ de um objeto a outro.

Mensagem por Daniel Machado Alves em Seg 05 Dez 2011, 21:59

Aguem sabe uma forma de deixar sempre um objeto a uma distancia X ou + de outro objeto especifico ou de todos os objetos sólidos.

Estou com um projeto em que uso o move_towards_point() para mover varios objeto simultaneamente,porem,chega um ponto em que os objetos começam a "subir" um em cima do outro(ao se aproximar do destino x.y)

Oque eu gostaria de pedir é,um comando ou alguma forma de quando um objeto estiver a uma distancia X ou - do obj_exemplo que estiver + próximo,ele se mova na direção oposta do mesmo,mantendo asim sempre uma distancia X ou evitando que ao ser criado em cima de um outro objeto ele se mova para longe (distancia de alguns pixels,16,8,por ai).

dez de ja agradeço.
VLWS!!! Happy



Daniel Machado Alves

Número de Mensagens : 33
Idade : 22
Data de inscrição : 29/04/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como manter uma distancia X+ de um objeto a outro.

Mensagem por itarodrigo em Seg 05 Dez 2011, 23:21

rapaz, nao entendi muita coisa, mas tenta assim:
Código:

if (objeto.x < obj_exemplo)
{
move o objeto
}
o comando para mover o objeto só irá funcionar se ele estiver a uma determinada distancia do outro.

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como manter uma distancia X+ de um objeto a outro.

Mensagem por Daniel Machado Alves em Seg 05 Dez 2011, 23:52

o problema é o comando de movimento,como eu movo um objeto esatamente pro lado oposto de outro objeto sem usar move_towards_point() ou speed(hspeed,vspeed) e identificar qual é o obj_exemplo + próximo,pois serão varios de um mesmo objeto em 1 room =/



Daniel Machado Alves

Número de Mensagens : 33
Idade : 22
Data de inscrição : 29/04/2011
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Como manter uma distancia X+ de um objeto a outro.

Mensagem por luiz_eldorado em Ter 06 Dez 2011, 00:00

O código do itarodrigo tá errado. O certo seria:
Código:
perto=instance_nearest(x,y,obj_exemplo)
if point_distance(x,y,perto.x,perto.y)>32
{move_towards_point(obj_exemplo.x,obj_exemplo.y,4)}
Eu acho.

OFF> Meia-noite! affraid Vou dormir! Flws!

luiz_eldorado

Ranking : Nota C
Número de Mensagens : 928
Idade : 18
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: Como manter uma distancia X+ de um objeto a outro.

Mensagem por Thyago em Ter 06 Dez 2011, 01:02

luiz_eldorado escreveu:O código do itarodrigo tá errado. O certo seria:
Código:
perto=instance_nearest(x,y,obj_exemplo)
if point_distance(x,y,perto.x,perto.y)>32
{move_towards_point(obj_exemplo.x,obj_exemplo.y,4)}
Eu acho.

OFF> Meia-noite! affraid Vou dormir! Flws!

.Quase isso,desse jeito quando ele estiver longe ele vai começar a andar e o speed vai ser igual a 4,mas quando ele aproximar não vai executar o codigo para seguir ,mas o speed vai continuar sendo 4 e ele vai continuar andando em uma linha reta,você deve zerar o speed.
Código:
perto=instance_nearest(x,y,obj_exemplo)
if point_distance(x,y,perto.x,perto.y)>32
{move_towards_point(obj_exemplo.x,obj_exemplo.y,4)}
else
{speed=0}

Thyago

Ranking : Nota B
Número de Mensagens : 1092
Idade : 30
Data de inscrição : 24/08/2009
Notas recebidas : D+B+B+C+A
Reputação : 31
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 1
   :

Voltar ao Topo Ir em baixo

Re: Como manter uma distancia X+ de um objeto a outro.

Mensagem por saim em Ter 06 Dez 2011, 09:13

Exatamente. Zerar a speed se a distância for menor (ou igual) à mínima.
Porque estou floodando assim?
Pra acrescentar que, se você resolvesse INVERTER a velocidade, como foi solicitado no post inicial, o objeto ficaria tremendo, oscilando, no perímetro do objeto a ser quase-atingido.
MAS, se você quiser isso mesmo, dá pra fazer em uma linha.
Código:
move_towards_point(objetivo.x, objetivo.y, 4 * sign(point_distance(x, y, objetivo.x, objetivo.y)<32)-0.5))

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: Como manter uma distancia X+ de um objeto a outro.

Mensagem por Conteúdo patrocinado Hoje à(s) 06:49


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