Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: TheSquirrel en Diciembre 12, 2010, 12:31:06 AM

Título: I.A basica, problemas de movimiento.
Publicado por: TheSquirrel en Diciembre 12, 2010, 12:31:06 AM
Hola hola, bueno tengo un problema con el siguiente codigo, que esta echo para perseguir al objeto "player" . y que dispare.
el problemba es que en el codigo solo esta que se mueva por los ejes X e Y, y quiero que el movimiento se por cualquier lado. como hago para cambiarlo?
aqui el codigo
[gml]//perseguir al personaje
var a;
a=0
tiempo+=1

if distance_to_object(player)<150 //si quieres cambia la distancia
{ if tiempo>=10{a=instance_create(x,y,obj_bullet_enemy);
a.direction= point_direction(x,y,player.x,player.y) a.speed=8 tiempo=0}
if distance_to_object(player)>50{
if player.x>x{if place_free(x+2,y){x+=2} else{vspeed=-4} }
if player.x<x{if place_free(x-2,y){x-=2} else{vspeed=-4} }
if player.y<y{if place_free(x,y-2){y-=2} else{vspeed=-4} }
if player.y<y{if place_free(x,y-2){y-=2} else{vspeed=-4} }
}}
[/gml]
Título: Re: I.A basica, problemas de movimiento.
Publicado por: hernis en Diciembre 12, 2010, 02:00:37 AM
Te dejo el codigo mas acomodado y con algunas cosas agregadas  :D
[gml]//perseguir al personaje
var a;
a=0

//Este para establecer la cantidad maxima
if tiempo<10 tiempo+=1

//Puedes usar "and" para juntar dos valores
if distance_to_object(player)<150 and tiempo=10//si quieres cambia la distancia
{
    a=instance_create(x,y,obj_bullet_enemy);
    a.direction= point_direction(x,y,player.x,player.y)
    a.speed=8
    tiempo=0
}

if distance_to_object(player)>50
{
    //Este mueve el objeto evadiendo todos los obstaculos hasta llegar al punto establecido
    mp_potential_step(player.x,player.y,2,0)
}[/gml]
Título: Re: I.A basica, problemas de movimiento.
Publicado por: TheSquirrel en Diciembre 12, 2010, 02:32:48 AM
pero no quiero que parta altiro corriendo, quiero que cuando este a 40 pixeles de el enemigo , ai recien camine hacia el personaje
Título: Re: I.A basica, problemas de movimiento.
Publicado por: hernis en Diciembre 12, 2010, 02:45:03 AM
le agregas esto y le cambias el 1 por la velocidad ke kieras
[gml]if distance_to_object(player)<40
{
    mp_potential_step(player.x,player.y,1,0)
}[/gml]
Título: Re: I.A basica, problemas de movimiento.
Publicado por: TheSquirrel en Diciembre 12, 2010, 02:53:57 AM
como puedo hacer que mi objeto obj_seguidor tenga un distancia entre el mismo (por que hay 3 en el juego) , tengan una distancia de 10 pixeles?