Cita de: penumbra en Agosto 03, 2014, 09:08:29 PM
El INI no tiene manera de saber qué uso se le va a dar a los datos que se guardan en sus claves. Eso sólo lo sabe el programador. Lo único que se puede hacer es darle nombres descriptivos a las claves para tener una idea de qué información contienen, pero eso realmente no importa, cualquier valor de cualquier clave del ini se puede usar en donde sea. o único que tienes que hacer es
[gml]x = ini_read_real("posicion","player_x", x);[/gml]
y no necesariamente en STEP, puede ser en CREATE, el jugador necesita leer al menos una vez la posición desde el ini, con una sóla vez es suficiente, después ya es cuestión del jugador moverlo a donde se quiera. Es desaconsejable leer recurrentemente el INI en STEP, esto crea problemas de rendimiento.
Despues de esto si funciona correctamente.
Pero para aclararme el concepto, entonces lo que yo había puesto anteriormente solo era la acción de guardar los datos de la posición en el archivo ini y al iniciar leerlos, lo que me faltaba era que el personaje ejecutase dicho cambio de leerlo y ir a esa posición (por así llamarlo), ¿no?
Y gracias!, la verdad que le he dado muchas vueltas a la guía y cuesta a veces dar con lo que buscas y más aún si el nivel del que partes es nulo y intentas profundizar en gml.
***MODIFICO***
Ahora tengo problemas al cambiar de room, puesto que al estar el "proceso" de lectura y aplicación de los datos de posición en create cada vez que se crea un nuevo objeto coge los datos escritos anteriormente, y no se adecua a la room.
Aun no lo probé, pero supongo que para esto lo mejor es crear una variable global, llamada por ejemplo "carga" con valor 0, y que solo cuando pulses el botón de carga del menu se active, de esta manera solo lee los datos al cargar desde el menu y no continuamente cada vez que crea el objeto.
Había pensado en algo como esto:
Código [Seleccionar]
if
cargando = 1
{
ini_open("mazmorra.ini");
x = ini_read_real("posicion","player_x", x);
y = ini_read_real("posicion","player_y", y);
load = 0;
ini_close();
}
¿Es lo más correcto?.