IA = Como faço para quando o inimigo ver uma parede, e tiver espaço em cima, ele subir?

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

IA = Como faço para quando o inimigo ver uma parede, e tiver espaço em cima, ele subir?

Mensagem por fonetico em Qua 18 Nov 2009, 23:16

Por exemplo, eu fiz um labirinto, e nele há o player e dois inimigos, mas agora, como eu faço para quando o inimigo encontrar uma parede ele ir ou para cima ou para baixo, dependendo se um desses lados tiver espaço. Eu sei que é um negócio de place_free, mas não sei usar esse negócio direito ainda.

fonetico

Número de Mensagens : 1830
Idade : 21
Data de inscrição : 05/10/2009
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: IA = Como faço para quando o inimigo ver uma parede, e tiver espaço em cima, ele subir?

Mensagem por dungeon333 em Qui 19 Nov 2009, 12:43

vixi cara isso nao tem nada a ver com place_free o certo éra usar A*(path find)

dungeon333

Número de Mensagens : 351
Data de inscrição : 29/05/2009
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: IA = Como faço para quando o inimigo ver uma parede, e tiver espaço em cima, ele subir?

Mensagem por Froidz em Qui 19 Nov 2009, 14:31

Corrigindo o nosso colega Dungeon, isso tem haver com place_free sim, tem que checar se tem um espaço livre para direita ou esquerda, se não tiver seguir para cima ou para baixo, e isso é bem simples, terá que checar se não há pixels nas posições X ou Y, como no exemplo:

Código:
if !place_free(x+15,y+0) then vspeed=-5

Coloque isso no evento Step num jogo com movimento simples de 8 direções, verá que caso não estiver livre nos próximos 15 pixels à direita, ele irá se mover para cima, tente, se não der certo vejo qual foi o erro, lembre-se que o outro objeto tem que ser sólido.

Valeu! o/

Froidz

Número de Mensagens : 1053
Idade : 23
Data de inscrição : 03/08/2008
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: IA = Como faço para quando o inimigo ver uma parede, e tiver espaço em cima, ele subir?

Mensagem por vinians em Qui 19 Nov 2009, 15:41

Como o pessoal já descreveu acima, dá pra fazer dos 2 jeitos, ou vc usa um A* ou você desenvolve seu próprio algoritmo usando o place_free() ou place_empty().
Se você quizer usar o A* o GM fornece algumas funções pra isso. A mais genérica seria essa:
mp_potential_step(x,y,stepsize,checkall)
Ou seja, você define onde a instancia deve ir e o tamho de cada passo em cada step (stepsize). Lembrando que você precisa do GM Pro (registrado) para usá-la.
flw!

vinians

Ranking : Nota B
Número de Mensagens : 2490
Idade : 27
Data de inscrição : 18/09/2008
Notas recebidas : B-C-A-C
Reputação : 52
Insignia 1 x 0 Insignia 2 x 1 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 1

http://xcreatorgames.weebly.com/

Voltar ao Topo Ir em baixo

Re: IA = Como faço para quando o inimigo ver uma parede, e tiver espaço em cima, ele subir?

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


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