erro grid, npc se perdendo

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

erro grid, npc se perdendo

Mensagem por ralk2 em Dom 01 Mar 2015, 12:25

Bom dia, galera!

Estou usando o codigo abaixo no evento begin step do meu boss:
grid=mp_grid_create(0,0,room_width/128,room_height/128,128,128);
path=path_add();//creates a path
mp_grid_add_instances(grid,obj_parede,1);
mp_grid_path(grid,path,x,y,obj_player.x, obj_player.y,1);
path_start(path,5,"",1);

porém, em alguns momentos ele se perde. Tipo o x = 2000 e y = 2340 e de repente o x e o y ficam iguais a 0. Alguem sabe me dizer pq esse erro acontece e como corrigi-lo?

tentei alterar os parametros do mp_grid_create pq não resolveu.

valew!!!

ralk2

Número de Mensagens : 17
Data de inscrição : 03/11/2013
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: erro grid, npc se perdendo

Mensagem por gabrielsch em Dom 01 Mar 2015, 13:14

O seu código está "matando" grande parte do desempenho do teu jogo, o que você está fazendo de errado e como melhorar:

1. Não recomendo que crie uma mp_grid a cada step, isso rouba muito desempenho do teu jogo além de ser inútil já que você só precisar criar ela uma vez, aconselho que crie ele no create do objeto e use mp_grid_add_instances() logo depois para melhorar.

2. Ao invés de criar uma nova path (path_add) a cada step aconselho que apague as coordenadas da ultima ou destrua a mesma. Recomendo que crie uma path no create do objeto e utilize path_clear_points() quando for fazer o pathfinding.

3. A função mp_grid_path retorna true caso um caminho tenha sido encontrado entre a posição inicial e a posição final e false caso contrário, basta utilizar essa informação para saber se você deve ou não iniciar uma nova path, desse jeito:
Código:
if mp_grid_path( grid, path, x, y, obj_player.x,  obj_player.y, 1) = true
{
 path_start(path, 5, 0, true);
}

___________


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

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