Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: Hacer que la view se mueva lentamente  (Leído 65 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado OmarMakero

  • Habitual
  • *
  • Puntos: 50
  • Mensajes: 30
  • Agradecido: 1 veces
  • Sexo: Masculino
  • Siempre el telefono caerá del lado de la pantalla
    • Ver Perfil
en: Mayo 23, 2020, 03:36:55 pm
Hola comunidad GM 8).

Tengo una pregunta acerca de las views. Lo que pasa es que en mi juego, intento que al entrar por una puerta la view se mueva a la siguiente parte de la view, pero no se como hacer para que se mueva lentamente.

Además aprovecho para saber si es posible hacer esto pero con diferentes rooms, o sea, que salgas de la room y la view se translade a la otra room como si fuera parte de la misma, no se si me explico :-[.

Bueno, eso es todo por ahora, espero que me ayuden con mi problema. Gracias de Antemano :D :D

OmarMakero
 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado Clamud

Respuesta #1 en: Mayo 23, 2020, 06:23:47 pm
Para la view debes usar variables que indiquen la posición final y luego desplazar la view poco a poco desde la posición actual hasta la posición final.
Para ello puedes usar la función lerp
https://www.comunidadgm.org/desarrollo-de-scripts/interpolacion-lineal-en-gm8/
view_xview[0] = lerp(x_inicial, x_final, t);
view_yview[0] = lerp(y_inicial, y_final, t);
t += 0.05;
if (t > 1) t = 1;
la variable t va de 0 a 1, incrementando un poco en cada step.

Para hacer el cambio entre rooms lo más fácil es utilizar las transiciones predefinidas. Las transisiciones solo funcionan en GM8, se eliminaron en GMS.
Al cambiar de room, debes guardar en varibles globales la posición en la que debe aparecer el personaje en la siguiente room
if (room == rm0) {//primera room
    if (x > room_width) {//si se sale de la room por la derecha
        transition_kind = 15; //Push from right
        transition_steps = room_speed * 0.5; //duración de la transición
        global.xx = 0; //posición en la que va a aparecer
        global.yy = y;
        room_goto(rm1); //cambiar de room
    }
}
Adjunto un ejemplo.

 
Los siguientes usuarios dieron las gracias a este tema: OmarMakero


Desconectado OmarMakero

  • Habitual
  • *
  • Puntos: 50
  • Mensajes: 30
  • Agradecido: 1 veces
  • Sexo: Masculino
  • Siempre el telefono caerá del lado de la pantalla
    • Ver Perfil
Respuesta #2 en: Mayo 23, 2020, 07:39:41 pm
Muchas Gracias, era justo lo que necesitaba.

Hasta el proximo post  8) :D :D

OmarMakero