Saber qual objeto está mais proximo do fim do path

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

Saber qual objeto está mais proximo do fim do path

Mensagem por itarodrigo em Ter 15 Out 2013, 23:23

estou criando um jogo de tower defense e quero saber qual objeto está mais proximo do fim do path, para que o 'tiro' atinja ele.

estou usando instance_nearest, entao ele ataca o objeto mais proximo, porem eu quero que ele ataque o mais perto do final do path.

abraços.

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: Saber qual objeto está mais proximo do fim do path

Mensagem por PedroX em Qua 16 Out 2013, 01:24

Sempre que lido com distâncias, uso priority queues.

Código:
var vitPrio;
vitPrio = ds_priority_create(); //cria uma lista
with(alvo){ //para todas as instâncias de "alvo"
   ds_priority_add(vitPrio, id, point_distance(x, y, path_get_x(path, 1), path_get_y(path, 1))); //adiciona a distância da instância até o final do path na lista
   }
mais_proxima = ds_priority_find_min(vitPrio); //pega a que está mais perto

ds_priority_destroy(vitPrio); //liberar a memória
Acredito que seja a melhor forma de fazer isso no GM.

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: Saber qual objeto está mais proximo do fim do path

Mensagem por fredcobain em Qua 16 Out 2013, 09:10

Pedro, na verdade a função correta é:
path_get_point_x(index, n);
e
path_get_point_y(index, n);

Sendo N o valor do último ponto da path.

Aliás, N tbm pode ser encontrado pela função:
path_get_number(index);


Ou seja, o simples código abaixo deve resolver:
Código:

tamanho=path_get_number(sua_path);
alvo = instance_nearest(path_get_point_x(sua_path, tamanho), path_get_point_y(sua_path, tamanho), seu_objeto);

fredcobain

Ranking : Sem avaliações
Número de Mensagens : 691
Idade : 35
Data de inscrição : 14/04/2011
Reputação : 162
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Saber qual objeto está mais proximo do fim do path

Mensagem por Kabeção em Qua 16 Out 2013, 11:06

path_position retorna um valor de 0 a 1, sendo 0 o começo e 1 o final independente do tamanho da path.
Sendo assim.

Código:
var ini_id,d;
ini_id = noone;
d = 0;

with (objInimigos) {
    if path_position > d ini_id = id;
}

alvo = ini_id;

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Saber qual objeto está mais proximo do fim do path

Mensagem por PedroX em Qua 16 Out 2013, 13:06

Fred, path_get_x(path, pos) também está correto, pois pede a posição no path (de 0 a 1). O path_get_point_x(path, point) pede um ponto. Mesmo assim, seu código me fez ver que compliquei as coisas. Então poderia ficar assim:

Código:
alvo = instance_nearest(path_get_x(sua_path, 1), path_get_y(sua_path, 1), seu_objeto);
Kabeção, estou em dúvida se esse código funciona.


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: Saber qual objeto está mais proximo do fim do path

Mensagem por saim em Qua 16 Out 2013, 19:28

PedroX, um path pode passar pertinho do final e dar uma volta imensa antes de CHEGAR no final. Tem que ser path_position, mesmo.
path_get_x/y te retorna os "nós" do path, ou seja, os pontos usados pra criar o path.

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: Saber qual objeto está mais proximo do fim do path

Mensagem por Conteúdo patrocinado Hoje à(s) 12:30


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