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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 19/08/2010
Número de Mensagens : 1299
Insígnias de JAM :

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

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

IA plataforma . Problema com código

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)
avatar
Ranking : Nota B
Notas recebidas : A+B+C
Data de inscrição : 25/07/2010
Número de Mensagens : 836
Insígnias de JAM :

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

Prêmios
   : 2
   : 0
   : 0
Ver perfil do usuáriohttp://jotonsn.blogspot.com/

Re: IA plataforma . Problema com código

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.
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 13/05/2012
Número de Mensagens : 275
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4
Ver perfil do usuáriohttp://www.legioncrafters.tk

Re: IA plataforma . Problema com código

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)
avatar
Data de inscrição : 19/08/2010
Número de Mensagens : 1299
Insígnias de JAM :

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

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

Re: IA plataforma . Problema com código

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 ?
Ranking : Nota D
Notas recebidas : D
Data de inscrição : 13/05/2012
Número de Mensagens : 275
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 4
Ver perfil do usuáriohttp://www.legioncrafters.tk

Re: IA plataforma . Problema com código

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
avatar
Ranking : Nota B
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Número de Mensagens : 2964
Insígnias de JAM :

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

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

Re: IA plataforma . Problema com código

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.
avatar
Data de inscrição : 19/08/2010
Número de Mensagens : 1299
Insígnias de JAM :

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

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

Re: IA plataforma . Problema com código

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
Conteúdo patrocinado

Re: IA plataforma . Problema com código

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