Conectar-se
Quem está conectado
13 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 13 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 03/11/2013
Número de Mensagens : 17
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 0
Ver perfil do usuário

erro grid, npc se perdendo

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!!!
avatar
Ranking : Nota A
Notas recebidas : D + A + A
Data de inscrição : 06/12/2009
Número de Mensagens : 1229
Insígnias de JAM :

Insignia 1x 1 Insignia 2x 0 Insignia 3x 0
Reputação : 28

Prêmios
   : 1
   : 2
   : 0
Ver perfil do usuário

Re: erro grid, npc se perdendo

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);
}
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum