Noticias

¡Ayuda a la Comunidad GM, haz una donación!

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!.

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Guacusio

Páginas: 1
1
Según lo que entiendo, el script tiene que guardar las ubicaciones (x,y) de todas las instancias de un objeto dado (cuyo object_index es argument0) en un archivo tipo ini cuyo nombre es argument1. Lo que yo haría sería guardar las variables x,y en una lista y luego guardar esa lista como string en el archivo. El siguiente script haría eso:

Código: [Seleccionar]
//scriptpara guardar coordenadas
//argument0=object_index del objeto
//argument1=nombre del archivo (sin el .ini)
var lista;
lista=ds_list_create();
with argument0
    {
    ds_list_add(lista,x);//guarda la x de la instancia
    ds_list_add(lista,y);//guarda la y de la instancia
    }
ini_open(argument1+".ini");
ini_write_string("coordenadas",object_get_name(argument0),ds_list_write(lista));
ini_close();
ds_list_destroy(lista);

Ese script guarda en la sección "coordenadas" del archivo ini una clave con el nombre del objeto y un valor igual a un string que contiene toda la información con las coordenadas.

El siguiente script lee la información y crea las instancias:

Código: [Seleccionar]
//script para leer coordenadas y crear los objetos:
//argument0=object_index del objeto
//argument1=nombre del archivo (sin el .ini)
var lista,n,i,xx,yy;
lista=ds_list_create();
ini_open(argument1+".ini");
ds_list_read(lista,ini_read_string("coordenadas",object_get_name(argument0),""));
n=ds_list_size(lista);//número de datos a leer
for(i=0;i<n;i+=2)
    {
    xx=lista[| i];//coord. x
    yy=lista[| i+1];//coord. y
    instance_create(xx,yy,argument0);
    }
ds_list_destroy(lista);
Los siguientes usuarios dieron las gracias a este tema: Dublan

Páginas: 1