duvida instance_nearest()

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

Resolvido duvida instance_nearest()

Mensagem por alexfuziokaandrade7 em Qui 21 Ago 2014, 16:56

Existem varios obj_block espalhados na room.... Quando um obj_circle é criado , ele pode interagir com 2 obj_block diferentes
ai eu fiz o código abaixo...
a minha duvida é : como eu identifico o segundo obj_block mais proximo?


Código:
if (counter=2) // tem 2 interações restantes com obj_block diferentes
{
    if collision_point(x,y,par_block,false,false)
    {
        inst1=instance_nearest(x,y,obj_block)
        
        physics_joint_weld_create(self,inst1,phy_position_x,phy_position_y,0,0.1,0,false)                                    
    }
    counter-=1;

}


if (counter=1)   // Uma interação restante
{
    Minha dúvida é aqui... como eu identifico um segundo obj_block mais perto que não seja o que ja fez a interação acima
    
    counter-=1;
}


Última edição por alexfuziokaandrade7 em Qui 21 Ago 2014, 18:21, editado 1 vez(es)

alexfuziokaandrade7

Número de Mensagens : 51
Idade : 26
Data de inscrição : 27/03/2014
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: duvida instance_nearest()

Mensagem por Gonçalves em Qui 21 Ago 2014, 17:10

Código:
inst1=instance_nearest(x,y,obj_block)
instance_deactivate_object(inst1)
inst2=instance_nearest(x,y,obj_block)
instance_activate_object(inst1)

Deve funcionar.

Gonçalves

Ranking : Nota B
Número de Mensagens : 1013
Data de inscrição : 29/10/2010
Notas recebidas : B + A + C
Reputação : 79
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: duvida instance_nearest()

Mensagem por gabrielsch em Qui 21 Ago 2014, 17:40

Esse script da GMLScripts.com deve resolver teu problema:
Código:
/*
**  Usage:
**      inst = instance_nth_nearest(x,y,obj,n);
**
**  Arguments:
**      x,y       a point
**      obj       an object_index, or keyword "all"
**      n         proximity
**
**  Return:
**      inst      (n)th nearest instance id of type
**                (object) to the given point (x,y),
**                or keyword "noone" if none found.
**
**  GMLscripts.com
*/
{
    var pointx,pointy,object,n,list,nearest;
    pointx = argument0;
    pointy = argument1;
    object = argument2;
    n = argument3;
    n = min(max(1,n),instance_number(object));
    list = ds_priority_create();
    nearest = noone;
    with (object) ds_priority_add(list,id,distance_to_point(pointx,pointy));
    repeat (n) nearest = ds_priority_delete_min(list);
    ds_priority_destroy(list);
    return nearest;
}

Depois que tu definir a posição x, y e o objeto a se verificar o ultimo argumento é qual deles você quer obter o ID, se for o primeiro mais perto você coloca 1, se for o segundo mais perto coloca 2 e por assim vai.

___________


Acesse: http://foxen.com.br/



gabrielsch

Ranking : Nota A
Número de Mensagens : 1229
Idade : 21
Data de inscrição : 06/12/2009
Notas recebidas : D + A + A
Reputação : 28
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: duvida instance_nearest()

Mensagem por alexfuziokaandrade7 em Qui 21 Ago 2014, 18:20

vlw gente, vou dar uma estudada nesses 2 métodos

alexfuziokaandrade7

Número de Mensagens : 51
Idade : 26
Data de inscrição : 27/03/2014
Reputação : 9
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: duvida instance_nearest()

Mensagem por Conteúdo patrocinado Hoje à(s) 17:29


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