IA plataforma . Problema com código

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

Resolvido IA plataforma . Problema com código

Mensagem por Zero. em Seg 02 Jul 2012, 14:25

Pessoal, qual a melhor forma de fazer uma movimentação independente ( IA )

eu tava usando isso. porém o obj não se move.
Código:

if char.x<x
{dir=false
if place_free(x-2,y)
x-=2}

if char.x>x
{dir=true
if place_free(x+2,y)
x+=2}

Alguem sabe explicar ?


Última edição por FlyAway em Seg 02 Jul 2012, 15:12, editado 3 vez(es)

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: IA plataforma . Problema com código

Mensagem por Joton em Seg 02 Jul 2012, 14:39

Vamos analisar seu codigo:

if char.x{dir=false

Esse primeiro X pode ser então qualquer posição do Char, em qualquer posição ele fica dir=false.

if place_free(x-2,y)

Se estiver livre dois pixels para direta.

x-=2}

Então subtrai 2, fazendo seu personagem avançar -2, -4, -6, -8, esse inimigo vai virar o flash assim.

if char.x>x

Se o X do char for maior que o X do Zé.

{dir=true

dir fica true

if place_free(x+2,y)

Se estiver dois pixels livres para esquerda.

x+=2}

Fica como o flash para esquerda, avançando 2,4,6,8.

Cara você consegue fazer um inimigo andar sem IA para um lado é outro? Isso é a base para se criar uma IA.

Joton

Ranking : Nota B
Número de Mensagens : 836
Idade : 28
Data de inscrição : 25/07/2010
Notas recebidas : A+B+C
Reputação : 5
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 0
   : 0

http://jotonsn.blogspot.com/

Voltar ao Topo Ir em baixo

Resolvido Re: IA plataforma . Problema com código

Mensagem por Esaucm98 em Seg 02 Jul 2012, 14:48

Aqui eu fiz e ele se move... não to entendendo

--EDIT--

mas .. porque você não faz algo mais simples.. assim

Código:
if distance_to_object(obj_player) < 100
 {
 move_towards_point(obj_player.x,obj_player.y,2);
 }

ai e so adicionar gravidade e colisão com o chão, que ele se movimenta bem direitinho em plataforma...

qualquer coisa eu fiz um tutprial :DD

http://gmbr.forumeiros.com/t22952-inteligencia-artificial-tut


Última edição por Esaucm98 em Seg 02 Jul 2012, 14:54, editado 4 vez(es)

Esaucm98

Ranking : Nota D
Número de Mensagens : 275
Data de inscrição : 13/05/2012
Notas recebidas : D
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.legioncrafters.tk

Voltar ao Topo Ir em baixo

Resolvido Re: IA plataforma . Problema com código

Mensagem por Zero. em Seg 02 Jul 2012, 14:49

sim, mas é de forma diferente.
Ja fiz outras IAs bem mais complicadas em outros projetos e que tinha movimento também.
E o código ta errado. Eu postei certo mas vai errado. o código ta assim:

Código:

if char.x<x
{dir=false
if place_free(x-2,y)
x-=2}

if char.x>x
{dir=true
if place_free(x+2,y)
x+=2}

Nem eu to entendendo .

E a gravidade dele é 0.4 e a direção é 270 e na colisão com o bloco :

move_contact_solid(direction,12)
vspeed=0

EDIT ________________-

se eu usar o move towards point e o player pular, ele vai subir um pouco até o jogador cair n ?

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: IA plataforma . Problema com código

Mensagem por Esaucm98 em Seg 02 Jul 2012, 15:30

se eu usar o move towards point e o player pular, ele vai subir um pouco até o jogador cair n ?

aqui isso não aconteceu, não sei porque, talvez seja porque quando ele colide com o chão você coloca vspeed = 0 ou porque eu usei uma gravidade mais alta ( 2 ou 3 ), não sei mas deu certo

Esaucm98

Ranking : Nota D
Número de Mensagens : 275
Data de inscrição : 13/05/2012
Notas recebidas : D
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.legioncrafters.tk

Voltar ao Topo Ir em baixo

Resolvido Re: IA plataforma . Problema com código

Mensagem por saim em Seg 02 Jul 2012, 15:35

Se "char" for o personagem do jogador, o código está ok. Debugue pra achar o erro. Verifique o valor de dir, além de verificar pro place_free. São 3 place_free que você via verificar: (x-2, y); (x+2, y) e (x, y). Esse último é pra garantir que o objeto com a IA não esteja uns poucos pixels enfiado no chão. Já que é um objeto que responde à gravidade, esse erro pode estar acontecendo.

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

Resolvido Re: IA plataforma . Problema com código

Mensagem por Zero. em Seg 02 Jul 2012, 16:03

Já ajeitei e melhorei.
O problema é que tinha outra consição de movimento.
ai colokei pra se uma estiver acontecendo, a outra para.

e ficou assim :
Código:

if char.x<x
{dir=false
if place_free(x-2,y)
hspeed=-move/2
else {
if vspeed>-1{
vspeed = -move*2;
hspeed=0
sound_play(eff_jump)}}}

if char.x>x
{dir=true
if place_free(x+2,y)
hspeed=move/2
else {
if vspeed>-1{
vspeed = -move*2;
hspeed=0
sound_play(eff_jump)}}}}}

VLW ai gente !

Tópico trancado, caso o autor quiser abrir notifique à algum moderador

Zero.

Número de Mensagens : 1295
Idade : 20
Data de inscrição : 19/08/2010
Reputação : 47
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: IA plataforma . Problema com código

Mensagem por Conteúdo patrocinado Hoje à(s) 20:23


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