Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Metal Mario en Mayo 30, 2011, 07:34:28 PM

Título: Resuelto: Como hacer un misil autodirigible?
Publicado por: Metal Mario en Mayo 30, 2011, 07:34:28 PM
Necesito saber como puedo hacer que un misil disparado se dirija a un enemigo? Lo pregunto porque no se usar point_direction y no se si este sirva para eso. Me explico:
El misil es disparado a una cierta direccion, pasa un tiempo y empieza a localizar un enemigo, despues debe aumentar o reducir ciertos grados de direccion dependiendo de donde se localize el objetivo. Pero no quiero usar move_towards_point porque cuando encuentra un objetivo hace un trazo recto, y yo necesito que haga un trazo digamos redondeado. Como puedo hacer esto?
Ah, y mi juego es un plataformas/shooter. Tipo Mario pero con armas.
Título: Re: Como hacer un misil autodirigible?
Publicado por: kakashigna en Mayo 31, 2011, 02:03:13 AM
como dices tu...puedes usar point_direction para obtener el angulo, luego hacer tus calculos para no hacer un giro abrupto(es decir solo darle la direccion del angulo al object y gire violentamente)
No se si entiende no soy bueno para explicar xD

Salu2
Título: Re: Como hacer un misil autodirigible?
Publicado por: juan pablo en Mayo 31, 2011, 02:16:05 AM
[gml]
if distance_to_object("enemigo"<189)
mp_potential_step (x,"enemigo".y,"enemigo","velocidad")[/gml]
ese va directo esquivando lo que sea
Título: Re: Como hacer un misil autodirigible?
Publicado por: shaoran en Mayo 31, 2011, 03:50:39 AM
Pues el misil al crearse podria contener una alarma que ejecute esto

enemigocercano=instance_nearest(x,y,Obj_Enemigo)
mp_potential_step(enemigocercano.x,enemigocercano.y,2,false)


Título: Re: Como hacer un misil autodirigible?
Publicado por: Metal Mario en Mayo 31, 2011, 05:15:23 PM
No, lo que necesito es que se dirija al objetivo, pero no quiero que esquive los objetos. No se si me explico bien, debe aumentar o reducir unos grados dependiendo de donde se encuentre.
Título: Re: Como hacer un misil autodirigible?
Publicado por: Robin28 en Mayo 31, 2011, 10:04:01 PM
creo que quieres un misil que doble hacia ti ignorando todo lo demas...

encontre un codigo que habia hecho antes para eso...

create:
[gml]speed=4.8;
ts=1.8;
base_ts=ts;
dist=point_distance(x,y,jugador.x,jugador.y);
dist_prev=dist;[/gml]

step:
[gml]dir=point_direction(x,y,jugador.x,jugador.y);
if abs(direction-dir)<180
    {
    if direction<dir direction+=ts; else if direction>dir direction-=ts;
    }
else
    {
    if direction<dir direction-=ts; else if direction>dir direction+=ts;
    }
dist_prev=dist;
dist=point_distance(x,y,jugador.x,jugador.y);
if abs(dist_prev-dist)<1.2 ts+=base_ts/8; else ts-=base_ts/8;
ts=max(ts,base_ts);
image_angle=direction; //esta linea solo funciona en pro (o standard...) si no tienes gm registrado quitala[/gml]

jugador.x y jugador.y deben ser cambiados dependiendo del objeto al que quieras seguir. si cambias la variable ts el misil doblara mas rapido o mas lento
Título: Re: Como hacer un misil autodirigible?
Publicado por: Rubeno en Mayo 31, 2011, 10:31:04 PM
Bueno yo lo probe y esta bastante bueno para mi (no lo suere)

Solo le faltyaria a?adir las colisiones con los pisos y con el jugador :D

SAludos
Título: Re: Como hacer un misil autodirigible?
Publicado por: Metal Mario en Junio 01, 2011, 12:31:33 AM
Este objeto no seguir? al jugador, seguir? a un enemigo, y este con otros tipos de enemigos mas llevan un parent. El que haya varios que yo haya especificado no afectar? en nada?
Verifico y edito. Me lo esperaba mas facil, pero veo que todo esto debe ser un lio para programarlo. :)
EDIT: Funciona, gracias. Pero talvez funcione lo que dice Rubeno acerca de dirigirse a dos objetivos existentes. Vere que tal.
Mientras tanto, gracias. Resuelto.
Título: Re: Como hacer un misil autodirigible?
Publicado por: Rubeno en Junio 01, 2011, 02:53:22 PM
Bueno entonces la keras utilizar como arma no ?

Podrias repetir el codigo varias veces es decir un step con un codigo extenso que el lo mismo pero con varios enemigos o varios codes para cada enenmigo

y lo mismo en create

Yo empezaria a intentarlo xD