Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: zHeMaa en Julio 17, 2017, 11:28:39 AM

Título: [SOLUCIONADO] Hacer un room_restart y mantener una variable
Publicado por: zHeMaa en Julio 17, 2017, 11:28:39 AM
Buenas a todos, necesito hacer un room_restart y que la room reinicie pero manteniendo el valor de la variable "image_angle".

Por ejemplo si image_angle es -200, quiero que todo se reinicie (hacer un room_restart), pero que image_angle siga siendo -200 (-200 es un ejemplo, pero realmente es un numero random).

Gracias!
Título: Re:Hacer un room_restart y mantener una variable
Publicado por: Zapdos43 en Julio 17, 2017, 02:03:40 PM
Es necesario guardar el valor en un archivo ini.

Primero crea en un bloc de notas un archivo ini. Yo he usado el Bloc de notas de Windows.
He puesto:
[Propiedad]
angulo = 0

Para guardarlo elige "Guardar como" y escribe el nombre del archivo con la extensión (.ini). En mi caso pongo: Mi_angulo.ini

Luego en el árbol de recursos me dirijo a la carpeta "Included files" y clic derecho. Elijo "Create included files" y busco el archivo ini que antes es creado.

Después en el objeto que cambia su angulo debes tener:
Evento Game Start:
ini_open("Mi_angulo.ini");// leemos el archivo ini
global.angulo = ini_read_real("Propiedad","angulo",0); // leemos el valor que tenemos en el archivo ini y lo guardamos en la variable globa.angulo
ini_close(); // dejamos de leer el archivo ini

Evento Step:
image_angle = global.angulo; // cambiar el angulo
global.angulo++ // sumamos 1 a la variable global.angulo

Para reiniciar la room puse un evento Key Press Space con el código: room_restart();

Me ha funcionado. Espero te sirva. Puedes buscar en google más información sobre cómo usar archivos ini en gamemaker.
Título: Re:Hacer un room_restart y mantener una variable
Publicado por: Clamud en Julio 17, 2017, 04:03:18 PM
Es más fácil con una variable global, definida en el evento Game Start o en una room anterior
[gml]
// Algún evento en una room anterior
global.angulo = 200;
[/gml]

Antes de reiniciar la room, guarda el último valor
[gml]
global.angulo = image_angle;
room_restart();
[/gml]

En el evento Create recupera el valor guardado
[gml]
image_angle = global.angulo;
[/gml]
Título: Re:Hacer un room_restart y mantener una variable
Publicado por: zHeMaa en Julio 18, 2017, 09:20:09 PM
Cita de: Zapdos43 en Julio 17, 2017, 02:03:40 PM
Es necesario guardar el valor en un archivo ini.

Primero crea en un bloc de notas un archivo ini. Yo he usado el Bloc de notas de Windows.
He puesto:
[Propiedad]
angulo = 0

Para guardarlo elige "Guardar como" y escribe el nombre del archivo con la extensión (.ini). En mi caso pongo: Mi_angulo.ini

Luego en el árbol de recursos me dirijo a la carpeta "Included files" y clic derecho. Elijo "Create included files" y busco el archivo ini que antes es creado.

Después en el objeto que cambia su angulo debes tener:
Evento Game Start:
ini_open("Mi_angulo.ini");// leemos el archivo ini
global.angulo = ini_read_real("Propiedad","angulo",0); // leemos el valor que tenemos en el archivo ini y lo guardamos en la variable globa.angulo
ini_close(); // dejamos de leer el archivo ini

Evento Step:
image_angle = global.angulo; // cambiar el angulo
global.angulo++ // sumamos 1 a la variable global.angulo

Para reiniciar la room puse un evento Key Press Space con el código: room_restart();

Me ha funcionado. Espero te sirva. Puedes buscar en google más información sobre cómo usar archivos ini en gamemaker.

Cita de: Clamud en Julio 17, 2017, 04:03:18 PM
Es más fácil con una variable global, definida en el evento Game Start o en una room anterior
[gml]
// Algún evento en una room anterior
global.angulo = 200;
[/gml]

Antes de reiniciar la room, guarda el último valor
[gml]
global.angulo = image_angle;
room_restart();
[/gml]

En el evento Create recupera el valor guardado
[gml]
image_angle = global.angulo;
[/gml]

Muchas gracias a los 2!! llevaba horas y horas probando cosas y no se me ocurría como hacerlo  :)
Título: Re:[SOLUCIONADO] Hacer un room_restart y mantener una variable
Publicado por: kostra en Julio 18, 2017, 10:20:49 PM
Pero no existe la casillita de "Persistent"? :/