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: Mantener ángulo y empuje del player al reiniciar la room... (Usando físicas)  (Leído 457 veces)

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

Desconectado _-Caleb-_

  • Asiduo
  • *
  • Puntos: 183
  • Mensajes: 123
    • Ver Perfil
    • Cadetes del Espacio
¡Buenas!

Tengo una duda, la cosa es que mi proyecto tiene sólo una room, los "niveles" se generan mediante archivos ini, mi problema es el siguiente, cuando salgo de la room por los lados se cambia la variable global que tengo para saber qué nivel toca cargar y reinicia la room con los nuevos datos.

El "problema" es que aunque también guarde los datos de y, en este caso en la salida horizontal, al reiniciarse el jugador se ve raro... yendo a derecha o izquierda y que cada vez que cambia la room vuelva a salir la nave en su posición original...

Por si acaso no me explico bien (que es lo habitual xD) os pongo un vídeo:

https://www.dropbox.com/s/yfegdcnzenxpmk5/dudagmfisica.mp4?dl=0

¿Cómo puedo mantener el empuje y la dirección de la nave? Ya he probado con persistent pero directamente no funciona, o algo hago mal porque no se reinicia.

El código que tengo es el siguiente, al pasar de, por ejemplo, izquierda a derecha en la fila N. Todo esto en el evento outside_room del player...

Código: [Seleccionar]
if (x >= 12001 )

{
switch (SistemaActual)
{
//Comprueba la variable, le añade la siguiente, escribe los datos de la posición Y y carga el jugador en el X50
case "N01": SistemaActual = "N02"; ini_open("pilot.ini"); ini_write_string("1", "0", SistemaActual); ini_write_real("1", "3", y); ini_write_real("1", "2", 50); break;
case "N02": SistemaActual = "N03"; ini_open("pilot.ini"); ini_write_string("1", "0", SistemaActual); ini_write_real("1", "3", y); ini_write_real("1", "2", 50); break;
case "N03": SistemaActual = "N04"; ini_open("pilot.ini"); ini_write_string("1", "0", SistemaActual); ini_write_real("1", "3", y); ini_write_real("1", "2", 50); break;
case "N04": SistemaActual = "N05"; ini_open("pilot.ini"); ini_write_string("1", "0", SistemaActual); ini_write_real("1", "3", y); ini_write_real("1", "2", 50); break;
case "N05": SistemaActual = "N06"; ini_open("pilot.ini"); ini_write_string("1", "0", SistemaActual); ini_write_real("1", "3", y); ini_write_real("1", "2", 50); break;
case "N06": SistemaActual = "N07"; ini_open("pilot.ini"); ini_write_string("1", "0", SistemaActual); ini_write_real("1", "3", y); ini_write_real("1", "2", 50); break;
case "N07": SistemaActual = "N08"; ini_open("pilot.ini"); ini_write_string("1", "0", SistemaActual); ini_write_real("1", "3", y); ini_write_real("1", "2", 50); break;
case "N08": SistemaActual = "N09"; ini_open("pilot.ini"); ini_write_string("1", "0", SistemaActual); ini_write_real("1", "3", y); ini_write_real("1", "2", 50); break;
case "N09": SistemaActual = "N10"; ini_open("pilot.ini"); ini_write_string("1", "0", SistemaActual); ini_write_real("1", "3", y); ini_write_real("1", "2", 50); break;
case "N10": SistemaActual = "N01"; ini_open("pilot.ini"); ini_write_string("1", "0", SistemaActual); ini_write_real("1", "3", y); ini_write_real("1", "2", 25); break;
ini_close()
}
//Reinicia el room y ejecuta el script que lee el archivo ini que crea los elementos del "nivel"
room_restart();
script_execute(sys_generator)
}

¿Alguna sugerencia al respecto? A ver si podéis ayudarme y así nos ahorramos que abra otro nuevo tema cuando empiece con las filas verticales :P

¡Saludos!

EDITO: Supongo que tendré que guardar dirección y empuje en variables, el problema es que no sé qué funciones usar para esto :S

EDITO 2: Me autorespondo, es phy_rotation, si es que ha sido postear el mensaje y dar con la solución :)
« última modificación: Noviembre 07, 2014, 04:46:59 pm por _-Caleb-_ »

Visita mi proyecto: Space Cadet
 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.