Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: ThenonnoxLoquendero en Mayo 23, 2016, 08:36:38 PM

Título: Mas lejos, mas veloz, ¿como hacerlo?
Publicado por: ThenonnoxLoquendero en Mayo 23, 2016, 08:36:38 PM
Bueno, quiero hacer que el view persiga a un objeto, y que este objeto persiga al jugador. Pero quiero que el objeto que dirige el view mientras mas cerca este del jugador mas lento siga (Y mientras mas lejos mas rapido). ¿Alguien tiene una respuesta? Si es posible, que pueda hacerlo en GML, estoy haciendo este juego completamente en código a forma de entrenamiento.
Título: Re:Mas lejos, mas veloz, ¿como hacerlo?
Publicado por: Clamud en Mayo 23, 2016, 09:00:45 PM
Puede ser una simple relación lineal entre distancia y velocidad
[gml]
//velocidad
vel = point_distance( x,y, obMeta.x,obMeta.y );
if( vel > 20  ) vel = 20;
if( vel < 0.5 ) vel = 0.5;

//direccion
dir = point_direction( x,y, obMeta.x,obMeta.y );

x += lengthdir_x( vel, dir );
y += lengthdir_y( vel, dir );
[/gml]

O puede tener transiciones más elaboradas:
http://easings.net/es (http://easings.net/es)
Título: Re:Mas lejos, mas veloz, ¿como hacerlo?
Publicado por: ThenonnoxLoquendero en Mayo 23, 2016, 11:06:02 PM
Ya lo he intentado, pero sigue siguiendo al jugador a una velocidad constante sin mas (Por cierto, si cambie el nombre del "obMeta" si te lo preguntabas).
Título: Re:Mas lejos, mas veloz, ¿como hacerlo?
Publicado por: 3dgeminis en Junio 28, 2017, 08:11:27 AM
Podes hacerlo asi :
[gml]
x+=(jugador.x-x)*0.08
y+=(jugador.y-y)*0.08
[/gml]
A valores mas chicos menor la velocidad