Julio 17, 2017, 11:28:39 AM Ultima modificación: Julio 18, 2017, 09:20:27 PM por zHeMaa
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!

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.

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]

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  :)

Pero no existe la casillita de "Persistent"? :/
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]