Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: AzTaki-De en Enero 25, 2018, 01:47:55 AM

Título: Objeto que va a la posición del personaje.
Publicado por: AzTaki-De en Enero 25, 2018, 01:47:55 AM
Cómo podría hacer que un objeto a cierta distancia vaya a la posición del personaje y aun si el personaje  se moviera este objeto  iría la posición que seleccionó  desde el principio y llegado a la posicion se detenga. 
Y segundos después detecte  la posición  del personaje  otra vez.
Título: Re:Objeto que va a la posición del personaje.
Publicado por: Clamud en Enero 25, 2018, 03:57:35 AM
En el evento Create declara una variable de estado, las variables de posición final e inicia una alarma
[gml]
/// Iniciar

estado = 0;
// estado 0: espera
// estado 1: en movimiento

// Posicion final
xfinal = 0;
yfinal = 0;

alarm[0] = segundos * room_speed;
// la posicion final se actualiza en la alarma
[/gml]
En el evento Alarm 0 actualiza la posición final y cambia al estado de movimiento
[gml]
/// Actualizar posicion final
xfinal = obPersonaje.x;
yfinal = obPersonaje.y;
estado = 1; //iniciar movimiento
[/gml]
En el evento Step realiza el desplazamiento
[gml]
/// Movimiento
if (estado == 1)
{
  //avanzar en linea recta hasta alcanzar la posicion final
  if mp_linear_step(xfinal, yfinal, velocidad, false)
  {
    //cuando llega a la posicion final
    estado = 0; //cambiar a estado de espera
    alarm[0] = segundos * room_speed; //durante unos segundos
  }
}
[/gml]
Título: Re:Objeto que va a la posición del personaje.
Publicado por: AzTaki-De en Enero 25, 2018, 06:31:15 PM
Cita de: Clamud en Enero 25, 2018, 03:57:35 AM
En el evento Create declara una variable de estado, las variables de posición final e inicia una alarma
[gml]
/// Iniciar

estado = 0;
// estado 0: espera
// estado 1: en movimiento

// Posicion final
xfinal = 0;
yfinal = 0;

alarm[0] = segundos * room_speed;
// la posicion final se actualiza en la alarma
[/gml]
En el evento Alarm 0 actualiza la posición final y cambia al estado de movimiento
[gml]
/// Actualizar posicion final
xfinal = obPersonaje.x;
yfinal = obPersonaje.y;
estado = 1; //iniciar movimiento
[/gml]
En el evento Step realiza el desplazamiento
[gml]
/// Movimiento
if (estado == 1)
{
  //avanzar en linea recta hasta alcanzar la posicion final
  if mp_linear_step(xfinal, yfinal, velocidad, false)
  {
    //cuando llega a la posicion final
    estado = 0; //cambiar a estado de espera
    alarm[0] = segundos * room_speed; //durante unos segundos
  }
}
[/gml]

Muchas gracias compañero =D